我正在使用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'
答案 0 :(得分:3)
有一个非常简单的Gradle插件,名为gradle-jacoco-log,它仅记录Jacoco覆盖率数据:
plugins {
id 'org.barfuin.gradle.jacocolog' version '1.0.1'
}
然后在./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%
还有一些选项可以自定义记录的内容。
这些天来enforcing a certain test coverage的另一个主题已由Gradle涵盖。
全面披露:我是这个小插件的作者。
答案 1 :(得分:2)
目前gradle jacoco插件不支持此功能。您可以在https://issues.gradle.org/browse/GRADLE-2783和https://issues.gradle.org/browse/GRADLE-2854投票支持此问题。作为一种解决方法,您可以在自定义任务中解析输出文件。
答案 2 :(得分:0)
您可以使用Gradle插件gradle-console-reporter向控制台报告各种摘要。支持JUnit,JaCoCo和Cobertura报告。