代码覆盖率是Xcode7的功能,可以在视觉上看到和衡量你的代码测试覆盖率。有了代码覆盖率,你可以确定测试是否符合你的预期。
启用代码覆盖率
Xcode的代码覆盖率由LLVM支持的测试操作。当你启用代码覆盖率,LLVM基于方法和函数调用的频率来收集覆盖数据。代码覆盖率选项可以收集单元测试和UI测试正确性和性能数据,
编辑scheme的测试操作可以启用代码覆盖率。
1.在scheme编辑菜单中选择Edit Scheme。
2.选择测试操作。
3.勾选代码覆盖率复选框收集覆盖率数据。
4.点击关闭。
注意:收集代码覆盖率数据会导致性能损耗。无论损耗是否显著,它均会影响执行代码的线性方式,因此在测试运行中启用代码覆盖率,性能结果依然具有可比性。然而,当你正在认真评估测试程序性能时,你应该考虑是否启用代码覆盖率。
代码覆盖率如何符合测试
代码覆盖率是用来衡量测试价值的工具。它回答了以下问题
- 当你运行测试时,什么代码真正运行?
- 多少测试才算足够?
- 换句话说,你是否设计足够的测试确保你所有的代码都检查了正确性和性能?
- 代码的哪部分没有被测试?
在测试运行完成后,Xcode采用LLVM覆盖数据并在报告导航中创建覆盖率报告,参见覆盖率面板。它显示了测试的摘要信息,源文件和源文件中的方法列表以及每个文件中的覆盖百分比。
源代码编辑器展示了文件中代码的行数并高亮未执行的代码。它高亮需要覆盖的代码区域而非已经覆盖的区域。
例如,将指针放在 -[Calculator input:]
方法上,将显示一个按钮,将你导航到源代码。
覆盖注释在右边显示,显示了在测试中代码某个特定部分被执行的次数。例如:
input:
方法,在测试中被频繁调用。然而,有部分方法并未被调用。在源代码编辑器中有明显的标记,如图:
报告数据和显示建议编写一个测试,包括意外或无效的字符确保错误按照你的方式处理。