本文介紹了為代碼覆蓋正確設置SonarQube;的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在使用Maven的SpringBoot后端應用服務器上使用JUnit5。以下是項目根目錄下的sonar-project.properties
文件:
sonar.host.url=https://sonarcloud.io
sonar.login=xxx
sonar.organization=xxx
sonar.projectKey=xxx
sonar.sourceEncoding=UTF-8
sonar.language=java
sonar.java.source=12
sonar.sources=src/main/java
sonar.test=src/test
sonar.java.binaries=target/classes
sonar.junit.reportPaths=target/test-results/TEST-**.xml
我使用sonar-scanner
命令行在生成/測試后運行更新項目。
聲納云上的Overview
板如下:
我至少讓單元測試得到了認可,但不知何故,就代碼覆蓋率而言,我仍然是0%。此外,這是Measures
板:
顯然,我的測試沒有涵蓋任何內容。現在,我意識到這意味著我很可能沒有正確地連接測試結果,但我不確定如何做到這一點。
同樣令我困惑的是,盡管SonarQube識別我的測試,但它實際上表明測試的代碼行本身并未進行測試。這是什么意思?
推薦答案
來自SonarQube的documentation:
SonarSource分析器不運行您的測試或生成報告。它們只導入預先生成的報告。
為Java生成代碼覆蓋率的一個流行的庫是Jacoco。
SonarQube提供this guide來創建和導入Jacoco的報表。
這篇關于為代碼覆蓋正確設置SonarQube;的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,