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

标签 testing gradle sonarqube jacoco multi-module

我有一个使用 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/

相关文章:

testing - 如何在 e2e 测试中跳过 MFA?

Python模拟日志记录同时保留日志输出

kotlin - 使用 gradle 约定插件设置 kotlin jvmTarget 选项

Gradle 复制任务 : Ant to gradle migration

docker - 使用 gitlab ci 运行 sonarqube 扫描仪

maven - Jenkins Pipeline 和 SonarQube 设置

java - 使用 Java 从基类扩展 TestNG

javascript - 检查 TestCafe 测试中的值

android - Travis-ci 找不到 'test' 任务

ant - Sonar 分析给出内存不足错误,我应该增加 Ant 或 Sonar 服务器的 JVM 堆空间吗?