Jacoco在我的Gradle项目中没有显示Spock代码覆盖率

MFI*_*san 0 unit-testing code-coverage gradle spock jacoco

我有一个配置了jacoco插件的Gradle项目来报告测试代码的覆盖范围.我的单元测试是用Spock框架编写的.

虽然Jacoco插件生成HTML报告,但它会将所有类的代码覆盖率报告为0%.

我google了很多,找不到我想念的东西.有没有人使用Gradle + Jacoco进行Spock代码覆盖?

apply plugin: "jacoco"
apply plugin: "groovy"

sourceSets {
    main {
        java { srcDirs = ['src/main/java'] }
        groovy {srcDirs = ['src/main/groovy'] }
        resources { srcDir 'src/main/resources' }
    }

    test {
        java { srcDirs = ['src/test/java'] }
        groovy { srcDirs = ['src/test/groovy'] }
        resources { srcDir 'src/test/resources' }
    }
}

test {
    jvmArgs '-Xms64m', '-Xmx2G', '-XX:MaxPermSize=128m'
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "${buildDir}/jacocoHtml"
    }
}

dependencies {
    testCompile "org.spockframework:spock-core:0.7-groovy-2.0"
    testCompile "org.spockframework:spock-spring:0.7-groovy-2.0"
}
Run Code Online (Sandbox Code Playgroud)

MFI*_*san 6

来自@PeterNiederwieser的建议完美无缺.这是最终结果:

apply plugin: "groovy"
apply plugin: "jacoco"

repositories { mavenCentral() }

dependencies {
  compile "org.codehaus.groovy:groovy-all:2.2.2"
  testCompile "org.spockframework:spock-core:0.7-groovy-2.0"
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "${buildDir}/jacocoHtml"
    }
}
Run Code Online (Sandbox Code Playgroud)