求助修复Gradle测试报告Test Summary的时长显示异常问题
Gradle并行测试Test Summary时长显示异常修复方案
问题详情
执行gradle test --parallel并行运行测试时,控制台显示test任务实际耗时1分35秒,但测试报告的Test Summary模块却错误显示为13分26秒。
可能的修复方案
- 修正报告时长统计逻辑
默认测试报告可能会累加所有并行测试线程的耗时,而非取任务实际总耗时。可在build.gradle中自定义报告的时长计算:
test { reports.html { // 自定义测试报告的时长展示,使用任务的实际执行时长 afterTask { task -> if (task instanceof Test) { def reportFile = task.reports.html.outputLocation.get().file("index.html").asFile if (reportFile.exists()) { def content = reportFile.text // 替换错误的时长为任务实际耗时 def actualDuration = task.duration def formattedDuration = String.format("%d分%d秒", actualDuration / 60, actualDuration % 60) content = content.replaceAll(/Test Summary.*?(\d+分\d+秒)/, "Test Summary - ${formattedDuration}") reportFile.write(content) } } } } }
- 升级Gradle版本
部分旧版Gradle存在并行测试时长统计的bug,升级到最新稳定版(如8.5及以上)可解决该问题。执行以下命令升级Gradle Wrapper:
./gradlew wrapper --gradle-version=8.5
- 排查任务依赖耗时
使用gradle test --parallel --profile生成性能分析报告,查看是否有其他依赖任务的时长被错误计入测试报告中,针对性优化依赖任务。
内容的提问来源于stack exchange,提问作者O_K
相关产品推荐
相关产品推荐

