在我的gradle构建中,我有两个测试任务,如下所示:
task testAAA(type: Test) {
filter {
includeTestsMatching "*AAA*"
}
finalizedBy jacocoTestReport
}
和
task testBBB(type: Test) {
filter {
includeTestsMatching "*BBB*"
}
finalizedBy jacocoTestReport
}
这将在build / jacoco中生成2个.exec文件:
我想生成一个涵盖报告,该报告从.exec文件的全部/全部中获取输入,我尝试这样做:
jacocoTestReport {
executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
reports {
xml.enabled true
}
}
当我尝试得到此错误时:
Execution failed for task ':Project1:jacocoTestReport'.
> Unable to read execution data file Project1/build/jacoco/test.exec
Project1/build/jacoco/test.exec (No such file or directory)
当我明确提供了executionData规范时,jacocoTestReport为什么要寻找“test.exec”?
最佳答案
我建议传递测试任务而不是文件树。这将使插件能够确保查找正确的文件,并解决可能发生的某些执行顺序问题,例如确保此报告任务在测试任务本身之后运行。
所以像:
jacocoTestReport {
executionData tasks.withType(Test)
reports {
xml.enabled true
}
}