[英]SonarQube + Jacoco Coverage Discrepancies
我已經使用Jacoco來分析我團隊的Maven項目的代碼覆蓋率近三個月了。 隨着我們添加越來越多的測試,並且一切運行良好,它一直在適當地進行分析和增加。
在過去的幾天中,我們已經開始嘗試對該項目進行SonarQube分析。 我們遇到的問題是,SonarQube中顯示的覆蓋范圍與Jacoco為我們顯示的覆蓋范圍完全不同。
我已經研究過此問題,並在線閱讀了一些解決方案,可以在此處的URL上找到與我們所遇到的問題最相似的問題。 但這不能解決我們遇到的問題。
在我們正在處理的pom.xml
文件中,我在properties文件夾中添加了以下幾行:
<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%
發生了相同的問題。
通過更深入地瀏覽SonarQube分析並逐包比較所分析的內容,我能夠找出所使用的設置的問題。
SonarQube正在分析整個存儲庫,顯示的默認覆蓋率報告不僅反映了使用jacoco.xml
而且還查看了其他類型的代碼。
為了查看准確的代碼覆蓋率,我必須將SonarQube分析中的查找位置更改為專門包含Java代碼的目錄,從而在兩個服務之間調整覆蓋率。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.