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

自定义Test类型任务时jacocoTestReport始终被SKIPPED问题求助

问题诱因

  1. jacocoTestReport任务默认仅关联Gradle内置test任务的执行数据(.exec格式文件),你自定义了Test类型任务myTest后,单独配置了该任务的jacoco输出路径为build/jacoco/myTest.exec,但未主动告知jacocoTestReport读取该路径的执行数据。
  2. jacocoTestReport内置跳过逻辑:当未找到匹配的测试执行数据文件时,会自动标记为SKIPPED,这就是使用默认test任务正常、自定义任务就跳过的核心原因。
  3. 额外注意:你在myTest配置中同时声明了useTestNG()和useJUnitPlatform(),两个测试框架声明会冲突,实际运行时只会生效最后一个,建议删除你未使用的测试框架配置。

修复方案

在jacocoTestReport配置块中新增executionData配置,指定读取自定义myTest任务的执行数据即可,修改后完整配置如下:

plugins {
    id 'java'
    id 'jacoco'
}

repositories {
    mavenCentral()
}

task myTest(type: Test) {
    // 二选一即可,删除不需要的测试框架配置
    useJUnitPlatform() 
    // useTestNG()

    finalizedBy jacocoTestReport
    reports {
        junitXml.required = false
        html.required = true
    }
    jacoco {
        enabled = true
        destinationFile = layout.buildDirectory.file("jacoco/${name}.exec").get().asFile
    }
}

jacocoTestReport {
    dependsOn myTest
    // 新增该行,指定读取myTest的执行数据
    executionData myTest
    reports {
        xml.required = false
        csv.required = false
        html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
    }
}

配置修改完成后,执行./gradlew myTest或./gradlew jacocoTestReport都可以正常生成覆盖率报告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:57:03