【问题标题】:SonarQube 8.2 Analysis shows 0 code coverageSonarQube 8.2 分析显示 0 代码覆盖率
【发布时间】:2020-08-07 03:11:11
【问题描述】:
  • SonarQube:8.2.0.32929
  • 声纳扫描仪:3.0.3.778
  • 雅可可:0.8.4
  • jdk:1.8
  • MVN:3.6.3

你想达到什么目的

我正在尝试通过使用 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。

任何见解将不胜感激。

【问题讨论】:

  • 我不知道这是否相关。我必须对 pom.xml 中的 jacoco 插件进行一些配置,以 prepare-agent 为目标,我想在那之前我看到了 0 代码覆盖率,但那是一年多以前,jacoco 0.8.2,它不是一个多模块项目。
  • 我正面临着多模块项目。对于单个模块,它工作正常。

标签: java sonarqube jacoco jacoco-maven-plugin sonarscanner


【解决方案1】:

我解决了这个问题。

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

【讨论】:

  • @saurabhkandge 你能粘贴你在命令行上使用的完整命令吗?我也面临同样的问题
【解决方案2】:

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

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

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

【讨论】:

  • 它能够将所有模块的所有报告聚合到1个模块中。 mvn sonar:sonar 目标也显示覆盖范围。但我想用不工作的声纳扫描仪来做。
猜你喜欢
  • 2016-04-08
  • 2021-03-01
  • 2019-08-12
  • 2016-07-08
  • 2019-12-23
  • 1970-01-01
  • 2017-05-31
  • 2020-02-25
  • 1970-01-01
相关资源
最近更新 更多