如何在Xcode Cloud构建完成后启用代码覆盖率报告?
Xcode Cloud 代码覆盖率获取方案
可用方案及构建后脚本用法
Xcode Cloud默认不直接展示代码覆盖率,但可以通过以下方式获取,构建后脚本是完全可行的解决方案,结合你现有的Build+Test工作流,具体操作如下:
1. 确保Test动作开启覆盖率收集
在本地Xcode中打开你的scheme设置:
- 切换到
Test标签页,进入Options栏目 - 勾选
Gather coverage data选项 - 将scheme的修改同步到Git仓库,确保Xcode Cloud运行时会收集覆盖率数据
2. 添加构建后脚本导出覆盖率
在Xcode Cloud工作流的Test动作之后添加Post-action脚本,利用Xcode Cloud提供的环境变量处理并导出覆盖率产物:
示例1:导出HTML格式的覆盖率报告
# 创建报告目录 mkdir -p "$CI_ARTIFACTS_DIR/coverage-report" # 从xcresult文件导出HTML覆盖率报告 xcrun xccov view --report --output-path "$CI_ARTIFACTS_DIR/coverage-report" "$CI_XCRESULT_PATH"
示例2:导出包含覆盖率的xcresult文件
# 复制完整的xcresult文件到Artifacts目录(包含所有测试及覆盖率数据) cp "$CI_XCRESULT_PATH" "$CI_ARTIFACTS_DIR/test-results-with-coverage.xcresult"
示例3:导出JSON格式的覆盖率数据(便于自动化分析)
xcrun xcresulttool get --format json --path "$CI_XCRESULT_PATH" --output "$CI_ARTIFACTS_DIR/coverage-data.json"
3. 获取覆盖率产物
脚本执行完成后,导出的文件会自动出现在Xcode Cloud运行结果的Artifacts栏目中,你可以下载后查看或进一步处理。
内容的提问来源于stack exchange,提问作者cora
相关产品推荐
相关产品推荐

