“未收集覆盖范围信息。”在生成Jacoco报告后运行'gradle sonarRunner'时

时间:2014-12-08 21:08:38

标签: java gradle sonarqube jacoco

我已经开始使用' java-gradle-simple'来自Sonar GitHub回购的例子:

https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/gradle/java-gradle-simple

我已将jacoco插件添加到我的build.gradle文件中,以查看单元测试覆盖率结果,并且我看到了警告:

  

未收集覆盖范围信息。也许你忘了包括   将信息调试到编译的类中?

我目前正在运行Sonar的4.3.2版本,这是我在运行' gradle test jacocoTestReport sonarRunner'之后看到的:

Sonar report

我的build.gradle文件如下所示:

apply plugin: 'java'
apply plugin: 'sonar-runner'
apply plugin: 'jacoco'

allprojects {  
  ext.baseVersion = "0.1"
  ext.snapshotVersion = true

  group = "org.sonar.tests"
  version = "$baseVersion" + (snapshotVersion ? "-SNAPSHOT" : "")
}

sonarRunner {
    sonarProperties {
        property "sonar.projectName", "Simple Java Gradle Project"
        property "sonar.projectKey", "org.codehaus.sonar:example-java-gradle"
        property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
        property "sonar.binaries", "${project.buildDir}/classes"
        property "sonar.sources", "src/main"
        property "sonar.tests", "src/test"
        property "sonar.java.coveragePlugin", "jacoco"
    }
}

buildscript {
    repositories { mavenCentral() }
    dependencies { classpath 'org.ajoberstar:gradle-jacoco:0.1.0' }
}

test {
  ignoreFailures = true
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.10'
}

repositories {
    mavenCentral()
}

我还缺少其他一些配置吗?令人惊讶的是,似乎没有太多关于使用Gradle生成单元测试覆盖率的信息。

1 个答案:

答案 0 :(得分:1)

由于您使用的是jdk 8,因此应将以下块添加到gradle脚本中:

jacoco {
    toolVersion = "0.7.0.201403182114"
}

另外,你应该确保你的声纳版本支持jdk8