建议先阅读单元测试结果数据解析文档。
统计整体代码覆盖率以及各个target的代码覆盖率数据。
使用苹果官方提供的命令行工具xccov
即可完成代码覆盖率的解析,并且可以获取到整体的代码覆盖率及各个模块的代码覆盖率。
xcrun xccov view --report --json #{xcresult_path} > #{json_path}
拿到json文件后,就可以通过解析json文件来获取代码覆盖率。
本项目提供 target.rb 来解析整体代码覆盖率和分模块的代码覆盖率。
# 传入文件为使用`xccov`解析之后的json文件
ruby targetCoverage.rb --cov-json-path=path/to/json_file --output-file=path/to/output_file
例如执行:
╰─± ruby targetCoverage.rb --cov-json-path=result.json --output-file=result.html
我们就可以得到如下的结果:
target 可执行代码行数 覆盖代码行数 代码覆盖率
All 424 313 73.8%
DemoTests.xctest 223 217 97.3%
Demo.app 201 96 47.7%