0%

iOS代码覆盖率统计

建议先阅读iOS单元测试自动化 – 单元测试数据统计

本文涉及的所有脚本均托管在GitHub项目 UnitTestParser 中。
Demo工程:UnitTestDemo

统计整体代码覆盖率以及各个target的代码覆盖率数据。

解析代码覆盖率文件

使用苹果官方提供的命令行工具xccov即可完成代码覆盖率的解析,并且可以获取到整体的代码覆盖率及各个模块的代码覆盖率。

1
xcrun xccov view --report --json #{xcresult_path} > #{json_path}

拿到json文件后,就可以通过解析json文件来获取代码覆盖率。
UnitTestParser项目提供 target.rb 来解析整体代码覆盖率和分模块的代码覆盖率。

1
2
# 传入文件为使用`xccov`解析之后的json文件
ruby targetCoverage.rb --cov-json-path=path/to/json_file --output-file=path/to/output_file

例如执行:

1
╰─± ruby targetCoverage.rb --cov-json-path=result.json --output-file=result.html

我们就可以得到如下的结果:

1
2
3
4
target	        可执行代码行数 覆盖代码行数  代码覆盖率
All 424 313 73.8%
DemoTests.xctest 223 217 97.3%
Demo.app 201 96 47.7%