SonarQube 8.2 分析显示代码覆盖率为 0

SonarQube 8.2 Analysis shows 0 code coverage

你想达到什么目的

我试图通过使用 sonar-scanner 实现代码覆盖率,但我在 sonarqube 仪表板中获得代码覆盖率 0。

到目前为止你做了什么来实现这个目标

我使用 https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven/maven-multimodule

配置了多模块 java 项目

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

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 就可以了。但是使用声纳扫描仪它不起作用。

它在 sonarqube 7.8 上运行良好。

如有任何见解,我们将不胜感激。

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

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/

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

由于您已经执行了这些步骤,我遗漏的一件事是聚合报告没有在最后一个模块中生成,而我是在集成测试模块之前的一个模块中生成的。但是在我们的案例中还有一个部署模块

我解决了这个问题。

在 运行 sonar-scanner 命令中,我添加了 xmlReportPaths 作为定义 属性,就像 sonar-scanner -Dsonar.coverage.jacoco.xmlReportPaths=tests/target/site/jacoco-aggregate/jacoco。 xml,../tests/target/site/jacoco-aggregate/jacoco.xml