2

我想設置我的Sonar(版本6.1)顯示我的項目代碼覆蓋率。我設置了JaCoCo,並可以使用命令SonarQube。無法顯示代碼覆蓋率

MVN清潔套裝

我的本地計算機上生成代碼覆蓋率,但我不能覆蓋上傳到聲納。要做到這一點我使用下面的命令:

MVN -Dsonar.login = < my_login> -Dsonar.password = < my_pwd> -Dsonar.host.url = <聲納URL> -Dsonar.projectKey = <的ProductKey >清潔套裝聲納:聲納-Psonar -Ptomcat

這裏是JaCoco設置在pom.xml中

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>${jacoco.plugin.version}</version> 
    <configuration> 
    <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile> 
    <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile> 
    </configuration> 
    <executions> 
    <execution> 
     <id>jacoco-initialize</id> 
     <goals> 
     <goal>prepare-agent</goal> 
     </goals> 
    </execution> 
    <execution> 
     <id>jacoco-site</id> 
     <phase>package</phase> 
     <goals> 
     <goal>report</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

,我看到下面的輸出:

[INFO] ------------- Scan risk 
[INFO] Language is forced to java 
[INFO] Base dir: F:\repo\orchestrator 
[INFO] Working dir: F:\repo\orchestrator\target\sonar 
[INFO] Source encoding: UTF-8, default locale: ru_RU 
[INFO] Quality profile for java: Sonar way 
[INFO] Sensor Lines Sensor 
[INFO] Sensor Lines Sensor (done) | time=0ms 
[INFO] Sensor SCM Sensor 
[INFO] Sensor SCM Sensor (done) | time=0ms 
[INFO] Sensor Embedded CSS Analyzer Sensor 
[INFO] 0 source files to be analyzed 
[INFO] Sensor Embedded CSS Analyzer Sensor (done) | time=1ms 
[INFO] Sensor Coverage Report Import 
[INFO] Sensor Coverage Report Import (done) | time=0ms 
[INFO] Sensor Coverage Report Import 
[INFO] Sensor Coverage Report Import (done) | time=0ms 
[INFO] Sensor Unit Test Results Import 
[INFO] Sensor Unit Test Results Import (done) | time=0ms 
[INFO] Sensor XmlFileSensor 
[INFO] Sensor XmlFileSensor (done) | time=0ms 
[INFO] Sensor Zero Coverage Sensor 
[INFO] Sensor Zero Coverage Sensor (done) | time=0ms 
[INFO] Sensor Code Colorizer Sensor 
[INFO] Sensor Code Colorizer Sensor (done) | time=0ms 
[INFO] Sensor CPD Block Indexer 
[INFO] JavaCpdBlockIndexer is used for java 
[INFO] 0/0 source files have been analyzed 
[INFO] Sensor CPD Block Indexer (done) | time=0ms 
[INFO] Calculating CPD for 592 files 
[INFO] CPD calculation finished 
[INFO] Analysis report generated in 20712ms, dir size=5 MB 
[INFO] Analysis reports compressed in 2506ms, zip size=3 MB 
[INFO] Analysis report uploaded in 2704ms 
[INFO] ANALYSIS SUCCESSFUL, you can browse http://URL/dashboard/index/<ProductId>:parent 
[INFO] Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report 
[INFO] More about the report processing at http://URL/api/ce/task?id=AV68su2eddnYVrlQ9oP- 
[INFO] Task total time: 1:36.284 s 

很高興收到有關Code Coverage發佈到Sonar的更多信息。任何建議/提示將高度讚賞。 Thanx!

+0

當您嘗試上傳報告時是否收到錯誤信息? – nullpointer

+1

你知道,我的pom.xml中似乎有問題/配置。我要更新我的問題 – user1053031

回答

2

在這裏可能出錯的事情。首先看起來很腥的是Sonar報告要分析的0個文件。它不會上傳它未分析的文件的覆蓋範圍。

這可能是由您錯誤定義的配置文件引起的。 mvn-P選項接受逗號分隔的列表。機會是你的第二個-Ptomcat已經覆蓋第一個-Psonar。更好地使用-Psonar,tomcat

另外,還要確保你運行在項目的根(其中pom.xml應該位於)的命令和你的聲納服務器具有Java和覆蓋安裝插件和配置正確。例如,服務器上的代碼覆蓋率設置不能排除java文件。

我也使用validate而不是package所以你的集成測試(故障安全插件)也運行。


吹毛求疵:

-Dsonar.projectKey=<productKey>如果你使用Maven,除非你想從你的pom.xml覆蓋缺省的項目名稱是沒有必要的。

+0

Thanx!好打!問題在於從我的命令行傳遞的配置文件名稱較差 – user1053031