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

如何将Kover报告上传至CircleCI「Test」标签页及报错排查

CircleCI + Kover 配置错误排查

第一个错误:when: always 位置写错导致bash报错

  • 原因:你把CircleCI的步骤属性when: always写到了command的bash脚本里,bash会把它当成命令执行,所以触发when:: command not found错误。when: always是用来标记步骤无论前面是否失败都要执行的,必须和name、command同级,属于run节点的属性,不是脚本内容。
  • 修复后的正确配置片段:
- run:
    name: Save test results
    command: |
      mkdir -p ~/test-results/junit/
      # 修正正则的转义,避免匹配失败
      find . -type f -regex ".*/build/reports/kover/xml/.*\.xml" -exec cp {} ~/test-results/junit/ \;
    when: always

第二个错误:Kover XML 格式不兼容store_test_results

  • 原因:CircleCI的store_test_results只支持JUnit/XUnit标准格式的测试结果XML,但Kover生成的XML是代码覆盖率报告,结构和JUnit完全不同,所以解析时会报invalid top level element错误。
  • 解决方案:
    • store_test_results应该用来上传真正的JUnit测试结果(一般在各个模块的build/test-results目录下),而不是Kover的覆盖率文件。
    • Kover的覆盖率报告只需要用store_artifacts保存即可,不需要走测试结果上传流程。
  • 调整后的配置示例:
# 替换原来的保存测试结果步骤,改为收集JUnit测试报告
- run:
    name: Save JUnit test results
    command: |
      mkdir -p ~/test-results/junit/
      find . -type f -name "*.xml" -path "*/build/test-results/*" -exec cp {} ~/test-results/junit/ \;
    when: always
- store_test_results:
    path: ~/test-results
# Kover的HTML报告正常用artifacts存储
- store_artifacts:
    path: shared/build/reports/kover/html

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:20:36