【问题标题】:Sonarqube task in Gradle does not produce test coverageGradle 中的 Sonarqube 任务不会产生测试覆盖率
【发布时间】:2017-04-06 10:27:14
【问题描述】:

我有多项目 Gradle 脚本。我添加到根项目中:

buildscript {
    repositories{
        ...
    }

    dependencies { classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2.1") }
}

apply plugin: org.sonarqube.gradle.SonarQubePlugin

sonarqube {
    properties {
        property "sonar.junit.reportsPath", "$projectDir/build/test-results/test"
        property "sonar.host.url", "http://localhost:9000"
        property "sonar.verbose", "true"
    }
}

Sonarqube 显示正确的测试次数,但覆盖率为 0。

我使用 Gradle 3.0、Java 1.8.0_45、Sonarqube 6.1。

Gradle 控制台显示许多“找不到类”消息。

Gradle 控制台也显示消息:

"报告路径不包含与 TEST-.*.xml 匹配的文件: myPath\build\test-results\test"

,这是正确的,因为该特定项目没有任何测试。

【问题讨论】:

  • 您是否希望分析生成然后使用测试覆盖率报告?
  • 我希望得到有关如何在 Sonarqube 中生成测试覆盖率的说明。

标签: unit-testing gradle sonarqube code-coverage sonarqube-scan


【解决方案1】:

在我的子项目中,我有:

apply plugin: 'java'
apply plugin: "jacoco"

jacocoTestReport {
    reports {
        xml.enabled = true
    }
}

check.dependsOn jacocoTestReport

运行根项目的 Gradle 任务“sonarqube”。

【讨论】:

  • 我认为将最后一行替换为test.finalizedBy jacocoTestReport 会更好,因为Jacoco 无论如何都需要运行test
【解决方案2】:

没有 SonarQube 分析器或插件为您执行测试或覆盖率计算。您必须在分析之前完成这些事情,并将生成的报告提供给您的分析。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-07-09
  • 2022-07-01
  • 2023-04-09
  • 2014-05-04
  • 2018-10-18
  • 2016-09-28
  • 2015-03-13
  • 1970-01-01
相关资源
最近更新 更多