“代码覆盖率”是软件测试中的一种度量,用于描述工程中源代码被测试到的比例和程度。
在做单元测试时,代码覆盖率经常被拿来作为衡量测试质量好坏的指标,同时也能在一定程度上检测出工程中的冗余代码。
Xcode 7 以后自带了代码覆盖率检测工具,并在 Xcode 9.3 中重写该功能,大大提升了性能和准确性。不过 Xcode 的 Code Coverage 仅适用于单元测试场景。
我们可以新建一个工程,勾选包含单元测试(Include Unit Tests),然后在 Edit Scheme -> Test -> Options -> Code Coverage 中开启收集代码覆盖率,如图 1 所示。
接下来在每次执行完单元测试后(Command + U),可以在 Report Navigator 中查看结果,如图 2 所示,我们可以看到每一个类、方法在本次测试的覆盖率,并且双击可以打开查看代码,哪些有被执行,哪些没有被执行。
此外,关于 iOS 代码覆盖率检测的原理和增量代码测试覆盖率 工具 实现,可以查看美团技术团队的 这篇文章 。