项目结构:
src/main/java
src/main/resources
src/test/java
Gradle版本:2.2.1
这是我的build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'jacoco'
version = '1.0'
sourceCompatibility = 1.7
targetCompatibility = 1.7
test {
include 'src/test/java'
finalizedBy jacocoTestReport
}
jacoco {
toolVersion = "0.7.6.201602180812"
}
jacocoTestReport {
group = "Reporting"
description = "Generate Jacoco coverage reports after running tests."
additionalSourceDirs = files(sourceSets.main.allJava.srcDirs)
reports {
xml.enabled false
csv.enabled false
html.destination "${buildDir}/reports/jacoco/html"
}
}
当我运行gradle任务"测试jacocoTestReport"时,我得到以下结果
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:jacocoTestReport SKIPPED
有人可以建议应该添加什么来执行jacoco测试报告。
感谢。
答案 0 :(得分:5)
只有在覆盖数据可用时才会运行该任务。您还可以通过运行test
任务来确保这一点。
来源 - Running jacocoReport
答案 1 :(得分:2)
我能够通过以下设置生成代码覆盖率结果。
apply plugin: 'jacoco'
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination "${buildDir}/jacocoHtml"
}
}
答案 2 :(得分:0)
晚些时候参加聚会,但是上面的答案都没有为我解决。相反,更改
dependencies {
testCompile 'org.junit.jupiter:junit-jupiter-api:5.0.0-M2'
}
到
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter:5.5.2'
}
就像是魅力(source)。
答案 3 :(得分:0)
你可以强制它运行:
<块引用>jacocoTestReport { onlyIf = { 真的 } }
这可能会产生错误(首先它没有运行是有原因的),但错误应该提供更多信息。