java SonarQube。无法显示代码覆盖率
我想设置我的声纳(版本6.1)来显示我的项目代码覆盖范围。我设置了JaCoCo,可以使用命令在计算机上本地生成CodeCoverage
mvn clean package
但我没能把报道上传到声纳上。为此,我使用以下命令:
mvn -Dsonar.login=< my_login > -Dsonar.password=< my_pwd > -Dsonar.host.url=< sonar URL > -Dsonar.projectKey=< productKey > clean package sonar:sonar -Psonar -Ptomcat
以下是pom中的JaCoco设置。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
如果能收到更多关于向Sonar发布代码覆盖率的信息,那就太好了。如有任何建议/提示,将不胜感激。 坦克斯
# 1 楼答案
这里有几件事可能出了问题。第一件看起来可疑的事情是Sonar报告了0个需要分析的文件。它不会上传未分析文件的报道
这可能是由您错误定义的配置文件造成的。{}{}选项接受逗号分隔的列表。很可能你的第二个
-Ptomcat
已经覆盖了第一个-Psonar
。最好使用-Psonar,tomcat
另外,还要确保在项目根目录中运行该命令(即
pom.xml
应该位于的位置),并且Sonar服务器已安装并正确配置Java和Coverage插件。例如,服务器上的代码覆盖率设置不能排除java文件我也会使用
validate
而不是package
,这样你的集成测试(故障保护插件)也会运行吹毛求疵:
如果使用Maven,则不需要
-Dsonar.projectKey=< productKey >
,除非您希望覆盖pom.xml
中的默认项目名称