在gradle中使用jacoco显示测试覆盖率

Tho*_*kke 5 unit-testing gradle jacoco

我正在使用gradle文件来构建我的项目。在此文件中,我正在使用jacoco生成测试报告。我要做的是修改构建文件,以便在我的测试覆盖率不是100%时显示一条消息。或者至少只是显示测试覆盖率。这可能吗?

这是我的build.gradle:

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

sourceSets.main.java.srcDirs = ['src']
sourceSets.test.java.srcDirs = ['test']

dependencies {
    testCompile group: 'junit', name: 'junit', version: "4.+"
}

repositories {
    mavenCentral()
}

jacocoTestReport {
    doFirst {
      classDirectories = files('build/classes/main/draw')
    }
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "build/reports/coverageHtml"
    }
}

task(runui, dependsOn: jar, type: JavaExec) {

    main = 'gui.Main'
    classpath = sourceSets.main.runtimeClasspath
}

defaultTasks 'clean', 'test', 'jacocoTestReport', 'runui'
Run Code Online (Sandbox Code Playgroud)

bar*_*uin 10

有一个非常简单的 Gradle 插件,叫做gradle-jacoco-log,它可以简单地记录 Jacoco 覆盖率数据:

plugins {
    id 'org.barfuin.gradle.jacocolog' version '1.0.1'
}
Run Code Online (Sandbox Code Playgroud)

然后在 之后./gradlew jacocoTestReport,它显示:

Test Coverage:
    - Class Coverage: 100%
    - Method Coverage: 100%
    - Branch Coverage: 81.2%
    - Line Coverage: 97.8%
    - Instruction Coverage: 95.3%
    - Complexity Coverage: 90.2%
Run Code Online (Sandbox Code Playgroud)

还有一些选项可以自定义记录的内容。

这些天,Gradle 涵盖了强制执行某个测试覆盖率的另一个主题。
完全披露:我是这个小插件的作者。


Ren*_*hke 3

目前 gradle jacoco 插件不支持此功能。您可以在https://issues.gradle.org/browse/GRADLE-2783和https://issues.gradle.org/browse/GRADLE-2854对此问题进行投票。作为解决方法,您可以在自定义任务中解析输出文件。