Gradle中的Sonarqube任务不会产生测试覆盖率

时间:2016-11-22 16:34:09

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

我有多项目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控制台显示许多" Class not found"消息。

Gradle控制台还会显示消息:

  

"报告路径不包含与TEST匹配的文件 - 。*。xml:   mypath中\构建\测试结果\测试"

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在我的孩子项目中,我有:

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

jacocoTestReport {
    reports {
        xml.enabled = true
    }
}

check.dependsOn jacocoTestReport

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