我正在使用gradle 1.7和jacoco插件。 我的项目使用java和scala插件
我跑的时候 gradlew -i clean jacocoTestReport
未创建报告,我在日志中看到
:bl:jacocoTestReport (Thread[Daemon Thread 13,5,main] - start
:bl:jacocoTestReport
Skipping task ':bl:jacocoTestReport' as task onlyIf is false.
:bl:jacocoTestReport SKIPPED
:bl:jacocoTestReport (Thread[Daemon Thread 13,5,main]) - complete
这是什么意思?为什么不创建报告?
答案 0 :(得分:29)
只有在覆盖数据可用时才会运行该任务。您还可以通过运行test
任务来确保这一点。
答案 1 :(得分:26)
将以下内容添加到build.gradle的顶层:
test {
finalizedBy jacocoTestReport
}
这意味着在测试任务结束时应该运行jacocoTestReport任务。 运行测试后,您将收到覆盖率分析。
答案 2 :(得分:10)
以上都不适合我。对我有用的是以下
添加到我的build.gradle顶部:
apply plugin: 'jacoco' // code coverage reports
将以下内容添加为'
:// Generate code coverage reports ... run with jacoco
jacocoTestReport{
additionalSourceDirs = files(sourceSets.main.allJava.srcDirs)
reports {
xml.enabled false
csv.enabled false
html.destination "${buildDir}/reports/jacoco/html"
}
executionData = files('build/jacoco/test.exec')
}
将以下内容添加到您的gradle测试任务中:
finalizedBy jacocoTestReport
然后我发出以下命令:
gradle run test jacoco