java - 配置 jacocoTestReport 以读取多个 .exec 文件作为输入

标签 java gradle jacoco jacoco-plugin

在我的 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 不会崩溃。

Jacoco JavaDocs
GH Issue with solution

关于java - 配置 jacocoTestReport 以读取多个 .exec 文件作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61070848/

相关文章:

java - Enunciate 中收集的 TypeHint

JavaFX 静态与非静态

java - 尝试联机查看已部署的 JSP 页面。 XAMP/Tomcat

java - 如何使用 gradle 插件在 netbeans 中获取项目来查找 native 库?

android - 对等方未通过身份验证-Android Studio

groovy - Sonar + JaCoco 不将 Groovy 代码计算在内

java - Sonarqube 和 Jacoco Gradle 插件

java - Android Jsoup Html 解析?

java - Gradle 构建失败

java - Ant 使用 Manifestclasspath 运行 junit ClassNotFoundException