SonarQube + Jacoco覆盖率差异

时间:2019-08-22 02:40:18

标签: java maven sonarqube jacoco

我已经使用Jacoco来分析我团队的Maven项目的代码覆盖率近三个月了。随着我们添加越来越多的测试,并且一切运行良好,它一直在适当地进行分析和增加。

最近几天,我们开始尝试为该项目建立SonarQube分析。我们遇到的问题是,SonarQube中显示的覆盖范围与Jacoco为我们显示的覆盖范围完全不同。

我已经研究了这个问题,并且在线阅读了一些解决方案,可以在URL here上找到与我们所遇到的问题最相似的问题。但这并不能解决我们遇到的问题。

在我们正在处理的pom.xml文件中,我在属性文件夹中添加了以下几行:

<sonar.coverage.jacoco.xmlReportPaths>./codeCoverage/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
<sonar.language>java</sonar.language>
<sonar.java.source>8</sonar.java.source>
<sonar.java.libraries>target</sonar.java.libraries>

这些是我在网上找到的,告诉我们如何配置SonarProperties。

我没有收到任何错误,但是代码覆盖率有所不同。

例如,在Jacoco.html文件中,我们的分支覆盖率为9.44%,但在SonarQube中,条件覆盖率为10.00%

Jacoco.html 13.76%中的线路覆盖范围与SonarQube中的11.1%相同,线路覆盖也会发生同样的问题。

1 个答案:

答案 0 :(得分:1)

通过更深入地浏览SonarQube分析并逐包比较所分析的内容,我能够找出所使用的设置存在什么问题。

SonarQube正在分析整个存储库,并且显示的默认覆盖率报告不仅使用jacoco.xml来反映,而且还查看其他类型的代码。

要查看准确的代码覆盖率,我必须将SonarQube分析中的查找位置更改为专门包含Java代码的目录,从而在两个服务之间调整覆盖率。

相关问题