源和测试类位于不同模块中时的JaCoCo配置

sco*_*rog 9 testing gradle multi-module jacoco sonarqube

我有一个使用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
Run Code Online (Sandbox Code Playgroud)

然后JaCoCo将展示Foo0%覆盖率的班级.我尝试合并所有模块的结果,但我得到相同的结果,但在一个文件中,所以这不是我想要的.在执行JaCoCo报告时是否有任何选项可以包含其他模块的来源?

谢谢.

小智 0

每个模块都需要自己的测试。Jacoco 在模块之后构建每个 jacoco.exec 模块,并且无法返回到前一个模块。所以你必须在 moduleA 中设置一个 TestFoo。