首页 文章

生成Jacoco报告后运行'gradle sonarRunner'时,“未收集覆盖率信息 . ”

提问于
浏览
3

我开始使用Sonar GitHub repo中的'java-gradle-simple'示例:

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生成Sonar的单元测试覆盖率的信息 .

1 回答

  • 1

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

    jacoco {
        toolVersion = "0.7.0.201403182114"
    }
    

    此外,您应该确保您的声纳版本支持jdk8

相关问题