我有一个使用 Gradle(2.2) + JaCoCo + Sonar 的多模块项目。我正在使用 sonar-runner
插件,当我执行测试时,我可以在每个模块中看到 build/jacoco/jacoco.exec
下的测试报告。到目前为止,一切都很好。
问题是,我在模块 A 中有一些测试正在测试来自其他模块 B 的类,因此 JaCoCo 正在识别模块 B 中代码覆盖率为 0% 的类。我知道这不是一个好的做法,但必须这样做。
结构示例:
moduleA
src
java
Foo
test
moduleB
src
java
test
TestFoo
然后 JaCoCo 将以 0% 的覆盖率显示类 Foo
。我曾尝试合并所有模块的结果,但我得到的结果相同,但在一个文件中,所以这不是我要找的。在执行 JaCoCo 报告时是否有任何选项可以包含来自其他模块的源代码?
谢谢。
最佳答案
每个模块都需要自己的测试。 Jacoco 在模块之后构建每个 jacoco.exec 模块,并且不能返回到前一个模块。所以你必须在moduleA中设置一个TestFoo。
关于testing - 源和测试类位于不同模块时的 JaCoCo 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26933619/