我们正在使用Sonar Ant Runner来报告项目统计信息。我们在ant-build运行所有测试并使用JaCoCo计算覆盖率后收集现有的报告文件。所以我们在属性中使用“reuseReports”,见下文。
现在发生的情况是测试运行良好,JaCoCo捕获覆盖率很好,JaCoCo覆盖报告本身看起来很清醒,但Sonar只在coverage部分显示了几个类,很多类都缺失了。
其他部分如单元测试,违规,债务......看起来不错,只有报道错误。
构建文件看起来像这样,我们使用2.0之前的兼容格式,因为我们有许多libs定义为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只显示几个类的覆盖范围?
答案 0 :(得分:0)
我实际上自己找到了解决方案:它似乎是由声纳-jacoco-plugin中的一个错误引起的。版本1.2有一个错误,因此它只包含第一个二进制目录。
这在sonar-jacoco-plugin的1.3版中得到修复。