【发布时间】:2015-01-10 13:43:21
【问题描述】:
我有一个 Maven 多模块项目。
root:
moduleA/ # no unit tests
moduleB/ # no unit tests
moduleC/ # no unit tests
tests/ # All unit tests, since depends on modules A, B and C
所有测试都在一个名为 tests/ 的模块中,所有代码都在单独的模块中。
有没有办法获得代码覆盖率?
【问题讨论】:
-
单元测试根据定义是适当模块的本地测试,而不是提取到单独的模块。因此,您对单独的单元测试模块的设置没有意义。 Maven 的目的是在同一个模块中拥有生产代码和适当的单元测试。由于文件夹结构显示
src/main/java生产代码。src/test/java单元测试代码。 -
如果您将测试模块视为集成测试的位置,我认为这是一个有效的设置。目前看来 jacoco 不支持这个,如果你有心情真正做到这一点,你可以试试 Sonar。否则,请等待 Jacoco 的下一个版本,它可能实际上支持它:D (github.com/jacoco/jacoco/pull/97)
-
如果我们谈论的是集成测试,是的,但问题中没有写。
-
如果你喜欢用 jacoco 运行集成测试,你需要一个代理,它必须在 maven-failsafe-plugin(如果我们谈论集成测试)中适当地配置。见这里:petrikainulainen.net/programming/maven/…
标签: java maven code-coverage jacoco-maven-plugin