近3个月来,我一直在使用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%
。
与SonarQube中的11.1%
相反,Jacoco.html 13.76%
中的线路覆盖率也存在同样的问题。
发布于 2019-08-22 21:12:24
通过更深入地查看我们的SonarQube分析,并逐个比较正在分析的包,我能够找出我们使用的设置的问题所在。
SonarQube正在分析整个存储库,所显示的覆盖率的默认报告不仅使用jacoco.xml
,而且还使用其他类型的代码进行反映。
为了查看准确的代码覆盖率,我必须将我们在SonarQube分析中查找的位置更改为独占Java代码的目录,从而使两个服务的覆盖率保持一致。
https://stackoverflow.com/questions/57601376
复制相似问题