【问题标题】:Aggregated Coverage or Coverage in the dependent modules not shown in SonarQube + Reports are generated by JacocoSonarQube + 报告中未显示的依赖模块中的聚合覆盖率或覆盖率由 Jacoco 生成
【发布时间】:2019-03-11 14:40:21
【问题描述】:

我正在运行 jacoco 插件来生成 html 、 xml 和 jacoco.exec 报告来衡量我的 testNg 测试所测试的代码的覆盖率。

我在本地和Jenkins 中成功生成了这些报告,我的所有单元测试结果都反映在Sonar 中,它向我展示了覆盖率。

我的jacoco.exec 有模块和依赖模块的覆盖结果。我已经使用eclemma plugin 验证了这一点,用于eclipse

我在 Sonar 中的依赖模块中没有得到覆盖结果。我做错了什么吗?

我的插件是这样的

<plugin>
 <groupId>org.jacoco</groupId>
 <artifactId>jacoco-maven-plugin</artifactId>
 <version>0.7.7.201606060606</version>
 <executions>
    <execution>
        <goals>
            <goal>prepare-agent</goal>
        </goals>
    </execution>
    <execution>
        <id>report</id>
        <phase>prepare-package</phase>
        <goals>
            <goal>report</goal>
        </goals>
    </execution>
  </executions>
</plugin>

我的目标是jacoco:report-aggregate

【问题讨论】:

标签: java jenkins sonarqube jacoco-maven-plugin eclemma


【解决方案1】:

我从jacoco plugin coverage in multi-module 得到了答案

以下是我所犯的导致我出现问题的错误。在我们的 pom 的属性中

 <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>

在插件中

 <destFile>${sonar.jacoco.reportPath}</destFile>

对我来说,由于 maven 模块层次结构的不同,上述语句刷新了不同文件夹中的 jacoco.exec,因此它们从未聚合。

第二点是依赖模块覆盖率只有在测试模块是compile time dependency时才会获得。

【讨论】:

    猜你喜欢
    • 2018-09-09
    • 2022-06-15
    • 2019-07-07
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多