You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle集成测试Jacoco报告生成后为空问题求助

解决Jacoco集成测试报告为空的问题

你的自定义JacocoReport任务缺少类文件和源文件的核心配置——Jacoco需要明确知道要为哪些代码生成覆盖率统计,仅指定执行数据文件不足以生成有效报告。

修改后的完整任务配置如下:

tasks.create<JacocoReport>("jacocoIntegrationTestReport") {
    group = "verification"
    description = "Generates code coverage report for the integrationTest task."

    // 修正路径匹配:移除开头斜杠,确保正确定位exec文件
    executionData.setFrom(fileTree(buildDir).include("jacoco/integrationTest.exec"))

    // 配置主代码的类文件目录(Jacoco需要关联执行数据到具体类)
    classDirectories.setFrom(sourceSets.main.get().output)
    // 配置主代码的源文件目录(用于在报告中展示具体代码行)
    sourceDirectories.setFrom(sourceSets.main.get().allSource)

    reports {
        xml.required.set(true)
        html.required.set(true)
    }
}

关键修复点说明

  • 路径修正:原配置中/jacoco/integrationTest.exec的开头斜杠会导致路径解析错误,去掉后才能正确匹配buildDir下的目标文件。
  • 类与源文件配置:sourceSets.main.get().output指向主代码编译后的类文件,sourceSets.main.get().allSource指向主代码的源文件,这两个配置是Jacoco生成带代码关联报告的必要条件。

额外优化建议

如果希望执行报告任务时自动先运行集成测试,可以添加依赖关系:

tasks.jacocoIntegrationTestReport.configure {
    dependsOn(tasks.integrationTest)
}

内容的提问来源于stack exchange,提问作者kylie.zoltan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:15:29