本文介紹了為代碼覆蓋正確設(shè)置SonarQube;的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我正在使用Maven的SpringBoot后端應(yīng)用服務(wù)器上使用JUnit5。以下是項(xiàng)目根目錄下的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命令行在生成/測試后運(yùn)行更新項(xiàng)目。
聲納云上的Overview板如下:
我至少讓單元測試得到了認(rèn)可,但不知何故,就代碼覆蓋率而言,我仍然是0%。此外,這是Measures板:
顯然,我的測試沒有涵蓋任何內(nèi)容。現(xiàn)在,我意識到這意味著我很可能沒有正確地連接測試結(jié)果,但我不確定如何做到這一點(diǎn)。
同樣令我困惑的是,盡管SonarQube識別我的測試,但它實(shí)際上表明測試的代碼行本身并未進(jìn)行測試。這是什么意思?
推薦答案
來自SonarQube的documentation:
SonarSource分析器不運(yùn)行您的測試或生成報(bào)告。它們只導(dǎo)入預(yù)先生成的報(bào)告。
為Java生成代碼覆蓋率的一個流行的庫是Jacoco。
SonarQube提供this guide來創(chuàng)建和導(dǎo)入Jacoco的報(bào)表。
這篇關(guān)于為代碼覆蓋正確設(shè)置SonarQube;的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,






