在我的 gradle 构建中,我有 2 个这样的测试任务:
task testAAA(type: Test) {
filter {
includeTestsMatching "*AAA*"
}
finalizedBy jacocoTestReport
}
和
task testBBB(type: Test) {
filter {
includeTestsMatching "*BBB*"
}
finalizedBy jacocoTestReport
}
这会在 build/jacoco 中生成 2 个 .exec 文件:
testAAA.exec
testBBB.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)
当我显式提供执行数据规范时,为什么 jacocoTestReport 正在寻找“test.exec”?
最佳答案
我为此奋斗了一段时间,甚至取得了成功。直到我昨天才回来。花了几个小时搜索并在 GH 上找到了这个。
jacocoTestReport {
getExecutionData().setFrom(fileTree(buildDir).include("/jacoco/*.exec"))
}
从 Gradle 6.0 开始,这是要走的路线。已针对具有 2 组测试的存储库对其进行了测试,我可以单独运行或同时运行,并且 Jacoco 不会崩溃。
关于java - 配置 jacocoTestReport 以读取多个 .exec 文件作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61070848/