建议先阅读iOS单元测试自动化 – 单元测试数据统计。
本文涉及的所有脚本均托管在GitHub项目 UnitTestParser 中。
Demo工程:UnitTestDemo
统计整体代码覆盖率以及各个target的代码覆盖率数据。
解析代码覆盖率文件
使用苹果官方提供的命令行工具xccov
即可完成代码覆盖率的解析,并且可以获取到整体的代码覆盖率及各个模块的代码覆盖率。
1 | xcrun xccov view --report --json #{xcresult_path} > #{json_path} |
拿到json文件后,就可以通过解析json文件来获取代码覆盖率。
UnitTestParser项目提供 target.rb 来解析整体代码覆盖率和分模块的代码覆盖率。
1 | # 传入文件为使用`xccov`解析之后的json文件 |
例如执行:
1 | ╰─± ruby targetCoverage.rb --cov-json-path=result.json --output-file=result.html |
我们就可以得到如下的结果:
1 | target 可执行代码行数 覆盖代码行数 代码覆盖率 |