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

Azure DevOps流水线reportgenerator@4报错:报告文件不存在问题排查

核心原因

1. runTestsWithJacoco任务被跳过,未生成Jacoco报告文件

JacocoReport类型的Gradle任务默认会校验executionData指定的.exec覆盖率数据文件是否存在,如果文件不存在,任务会自动标记为SKIPPED,不会生成后续的xml/html报告。导致.exec文件不存在的常见原因:

  • 依赖的testDebugUnitTest任务执行失败,没有生成.exec原始数据
  • 配置的executionData路径和Android Gradle 7.0.1实际生成的.exec文件路径不匹配:Android Gradle 7.0+默认会把单元测试的.exec文件输出到$buildDir/outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec,而非你配置的jacoco/testDebugUnitTest.exec

2. 报告生成任务的输入路径配置错误

就算runTestsWithJacoco任务成功执行,你reportgenerator@4任务中指定的reports路径也和实际生成的报告路径不一致:
你的Jacoco任务名为runTestsWithJacoco,默认生成的xml报告路径为app/build/reports/jacoco/runTestsWithJacoco/runTestsWithJacoco.xml,你配置的是错误的文件名runUnitTestsWithCoverage.xml,自然找不到目标文件。

其他潜在问题

  • reportgenerator@4任务中配置的sourcedirs为service/src/main/java,但你的源码实际在app模块的src/main/java下,路径不匹配会导致后续报告展示异常
  • 项目级build.gradle中定义的jacoco_version扩展属性,在app模块中使用前如果读取失败,会导致Jacoco插件初始化异常,也可能引发任务跳过

修复建议

  • 先修正runTestsWithJacoco任务中的executionData路径为Android Gradle 7.0+的默认路径:
executionData.from(fileTree(dir: buildDir, includes: [
        "outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec"
]))
  • 修正reportgenerator@4任务的reports参数为正确路径:
reports: 'app/build/reports/jacoco/runTestsWithJacoco/runTestsWithJacoco.xml'
  • 可在Gradle任务中添加日志打印确认.exec文件是否存在,排查任务跳过的根因
  • 同步修正sourcedirs为app/src/main/java

内容的提问来源于stack exchange,提问作者YoSoy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:51:01