源和测试类在不同模块中时的 JaCoCo 配置
Posted
技术标签:
【中文标题】源和测试类在不同模块中时的 JaCoCo 配置【英文标题】:JaCoCo configuration when sources and tests classes are in different modules 【发布时间】:2015-01-12 01:24:25 【问题描述】:我有一个使用 Gradle(2.2) + JaCoCo + Sonar 的多模块项目。我正在使用sonar-runner
插件,当我执行测试时,我可以在每个模块中看到build/jacoco/jacoco.exec
下的测试报告。到目前为止,一切都很好。
问题是,我在模块 A 中有一些测试正在测试来自其他模块 B 的类,因此 JaCoCo 正在以 0% 的代码覆盖率识别来自模块 B 的类。我知道这不是一个好的做法,但必须这样做。
结构示例:
moduleA
src
java
Foo
test
moduleB
src
java
test
TestFoo
然后 JaCoCo 将显示覆盖率为 0% 的类 Foo
。我尝试合并所有模块的结果,但我得到了相同的结果,但在一个文件中,所以这不是我想要的。执行 JaCoCo 报告时是否有任何选项可以包含来自其他模块的源?
谢谢。
【问题讨论】:
【参考方案1】:每个模块都需要自己的测试。 Jacoco 在模块之后构建每个 jacoco.exec 模块,并且不能返回到前一个模块。所以你必须在moduleA中设置一个TestFoo。
【讨论】:
以上是关于源和测试类在不同模块中时的 JaCoCo 配置的主要内容,如果未能解决你的问题,请参考以下文章