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

Gradle复合构建中Test-report-aggregation插件使用问题排查

解决Gradle多模块测试报告聚合失败的问题

核心排查步骤

1. 确认插件在根项目的正确应用

test-report-aggregation插件必须在根项目的build.gradle里的plugins块中声明,示例配置:

plugins {
    id 'test-report-aggregation'
}

注意:根项目不需要额外应用java或java-library插件,插件会自动处理子模块的报告收集逻辑。

2. 子模块需保证生成测试报告

每个子模块(first、second)必须应用java或java-library插件,并且确保测试任务生成XML格式报告(聚合插件依赖这个来收集数据),子模块配置示例:

plugins {
    id 'java'
}

test {
    reports {
        html.required = true // 生成子模块自己的HTML报告,可选但建议保留
        xml.required = true // 这个是聚合必需的,默认开启,显式声明更稳妥
    }
}

3. 确保先执行子模块测试任务

聚合报告任务依赖子模块的test任务执行结果,你可以直接运行组合命令:

./gradlew test testAggregateTestReport

或者在根项目build.gradle里添加依赖,让聚合任务自动触发测试:

testAggregateTestReport.dependsOn subprojects.test

之后直接跑./gradlew testAggregateTestReport就行。

4. 找对报告生成路径

聚合报告默认生成在根项目的build/reports/tests/aggregateTestReport目录下,不是根build文件夹直接目录,别找错地方了。

5. 检查settings.gradle的子模块配置

确保settings.gradle里正确包含了两个子模块:

include ':first', ':second'

如果子模块不在根目录下,还要用project(':first').projectDir = file('你的子模块路径')指定位置。

6. 验证Gradle版本

test-report-aggregation是Gradle 7.4以后才有的插件,用./gradlew --version检查你的版本是否达标。

额外调试技巧

  • 加--info参数跑任务,看详细日志找问题:
    ./gradlew testAggregateTestReport --info
    
  • 先确认子模块的build/reports/tests/test目录里有index.html和TEST-*.xml文件,确保测试任务正常执行并输出了报告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:27:12