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

Android JUnit4测试未在CircleCI测试摘要中显示的问题排查

解决CircleCI Android测试摘要(Test Summary)不显示的问题

首先明确一点:Gradle 5.2.1生成的Android测试报告是被CircleCI支持的,问题出在你的store_test_results配置路径上。

CircleCI的Test Summary功能依赖的是JUnit格式的XML测试结果文件,而不是你当前通过store_artifacts上传的HTML报告。你之前的配置里,store_test_results指向的test-results路径大概率没有包含正确的XML文件——因为Android Gradle插件默认会把单元测试的XML结果生成在每个模块的build/test-results/testDebugUnitTest/目录下,而不是build/reports/tests/(这个目录是HTML报告的位置)。

两种可行的修复方案

方案1:直接配置多个测试结果路径

CircleCI支持多次调用store_test_results,你可以直接把每个模块的XML结果路径都配置进去:

# 保留你现有的store_artifacts配置,用于HTML报告
- store_artifacts: path: module1/build/reports/tests/testDebugUnitTest/ destination: test-results/module1
- store_artifacts: path: module2/build/reports/tests/testDebugUnitTest/ destination: test-results/module2

# 修改store_test_results,指向每个模块的XML结果目录
- store_test_results: path: module1/build/test-results/testDebugUnitTest/
- store_test_results: path: module2/build/test-results/testDebugUnitTest/

这样CircleCI会自动扫描每个路径下的XML文件,汇总生成Test Summary。

方案2:用Gradle任务统一收集测试结果

如果模块较多,不想重复配置路径,可以在项目根目录的build.gradle中添加一个Gradle任务,把所有模块的XML测试结果复制到一个统一目录,再让CircleCI读取这个目录:

// 根build.gradle中添加
task collectTestResults(type: Copy) {
    // 遍历所有子模块,收集测试XML
    from subprojects.collect { it.file("build/test-results/testDebugUnitTest/") }
    // 统一输出到根目录的build/test-results/allModules
    into file("$buildDir/test-results/allModules")
    include "*.xml"
}

// 确保这个任务在所有单元测试完成后自动执行
subprojects.each { project ->
    project.tasks.withType(Test) {
        finalizedBy collectTestResults
    }
}

然后修改CircleCI的config.yml:

# 先执行收集任务
- run:
    name: Collect all test results
    command: ./gradlew collectTestResults

# 存储统一目录下的XML结果
- store_test_results: path: build/test-results/allModules

# 保留原有的HTML报告上传配置
- store_artifacts: path: module1/build/reports/tests/testDebugUnitTest/ destination: test-results/module1
- store_artifacts: path: module2/build/reports/tests/testDebugUnitTest/ destination: test-results/module2

验证方法

配置完成后重新运行CI,你可以在CircleCI的“Tests”标签页(也就是Test Summary)看到汇总的测试结果,包括通过/失败的用例数,点击还能查看具体失败的用例详情。

内容的提问来源于stack exchange,提问作者Jacques.S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:09:14