【问题标题】:Sonar only displays JaCoCo coverage for very few classes声纳只显示极少数类的 JaCoCo 覆盖范围
【发布时间】:2014-02-19 17:54:38
【问题描述】:

我们正在使用 Sonar Ant Runner 报告项目统计数据。在 ant-build 运行所有测试并使用 JaCoCo 计算覆盖率后,我们会收集现有报告文件。所以我们在属性中使用“reuseReports”,见下文。

现在发生的情况是测试运行良好,JaCoCo 捕获覆盖率很好,JaCoCo 覆盖率报告本身看起来很正常,但 Sonar 只在覆盖率部分显示几个类,很多类都丢失了。

单元测试、违规、债务等其他部分看起来还可以,只是覆盖范围有误。

构建文件看起来像这样,我们使用 pre-2.0 兼容格式,因为我们有许多定义为 ant-Properties 的库,我们尚未将它们转换为 sonar.libraries=... 格式:

    ....
<property name="sonar.dynamicAnalysis" value="reuseReports" />
<property name="sonar.sourceEncoding" value="UTF-8" />
<property name="sonar.projectVersion" value="2.0" />

<!-- surefire will become junit in some version of Sonar -->
<property name="sonar.surefire.reportsPath" value="report" />
<property name="sonar.junit.reportsPath" value="report" />

<property name="sonar.jacoco.reportPath" value="merged.exec" />

<!-- Add the target -->
<target name="sonar" depends="mergecoverage">
    <echo message="Running Sonar analysis" />

    <sonar:sonar key="${sonar.projectKey}" version="2.0" xmlns:sonar="antlib:org.sonar.ant">

         <sources>...</sources>

        <tests>...</tests>

        <binaries>...</binaries>

        <libraries>...</libraries>
    </sonar:sonar>
</target>

似乎我可以打开的日志记录不多了,知道为什么 Sonar 只显示几个类的覆盖范围吗?

【问题讨论】:

    标签: sonarqube jacoco sonar-runner


    【解决方案1】:

    实际上我自己找到了解决方案:它似乎是由 sonar-jacoco-plugin 中的错误引起的。 1.2 版有一个错误,所以它只包含第一个二进制目录。

    这已在 sonar-jacoco-plugin 的 1.3 版中得到修复。

    详情请见http://jira.codehaus.org/browse/SONARJAVA-164

    【讨论】:

      猜你喜欢
      • 2015-10-30
      • 2020-04-25
      • 1970-01-01
      • 2019-04-23
      • 2015-05-15
      • 2014-04-09
      • 2016-02-25
      • 2016-11-15
      • 2016-11-10
      相关资源
      最近更新 更多