关于java:SonarQube 8.2分析显示0代码覆盖率

SonarQube 8.2 Analysis shows 0 code coverage

  • SonarQube:8.2.0.32929
  • 声纳扫描仪:3.0.3.778
  • 雅各布:0.8.4
  • jdk:1.8
  • mvn:3.6.3

您要实现什么目标

我正在尝试使用声纳扫描仪来实现代码覆盖率,但是我在声纳仪表板中获得了代码覆盖率0。

到目前为止,您为达到此目的尝试了什么

我使用https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven/maven-multimodule配置了多模块Java项目

并使用以下配置在基本目录中创建了sonar-project.properties文件

1
2
3
4
5
sonar.projectKey=org.sonarqube.sonarscanner-maven-aggregate
sonar.projectName=Sonar Scanner Maven Aggregate
sonar.projectVersion=1.0
sonar.language=java
sonar.java.binaries=.

如果我使用mvn sonar:sonar,则可以使用。但是使用声纳扫描仪无法正常工作。

使用声纳尔7.8可以正常工作。

任何见识将不胜感激。


我已解决此问题。

在运行sonar-scanner命令时,我将xmlReportPaths添加为定义属性,例如sonar-scanner -Dsonar.coverage.jacoco.xmlReportPaths = tests / target / site / jacoco-aggregate / jacoco.xml,.. / tests /目标/站点/jacoco-aggregate/jacoco.xml


如果您的项目设置为多模块,则必须将覆盖率报告从每个模块传递到将作为构建的一部分运行的最后一个模块(可能是集成测试模块)

https://community.sonarsource.com/t/coverage-test-data-importing-jacoco-coverage-report-in-xml-format/12151

https://community.sonarsource.com/t/in-sonarqube-8-2-code-coverage-is-always-showing-0/21666

https://docs.sonarqube.org/latest/analysis/coverage/

https://stackoverflow.com/a/15535970

遵循Sonar团队在此示例项目中提到的步骤对我有帮助
https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven/maven-multimodule

您已经按照这些步骤进行操作,所以我缺少的一件事是在上一个模块中未生成汇总报告,而我在集成测试模块之前的一个模块中进行了报告。但是在我们的案例中,还有一个部署模块