翻译:使用Xcode测试(六)——代码覆盖率(Code Coverage)

代码覆盖率是Xcode7的功能,可以在视觉上看到和衡量你的代码测试覆盖率。有了代码覆盖率,你可以确定测试是否符合你的预期。

启用代码覆盖率

Xcode的代码覆盖率由LLVM支持的测试操作。当你启用代码覆盖率,LLVM基于方法和函数调用的频率来收集覆盖数据。代码覆盖率选项可以收集单元测试和UI测试正确性和性能数据,

编辑scheme的测试操作可以启用代码覆盖率。

1.在scheme编辑菜单中选择Edit Scheme。

翻译:使用Xcode测试(六)——代码覆盖率(Code Coverage)_第1张图片

2.选择测试操作。
3.勾选代码覆盖率复选框收集覆盖率数据。

翻译:使用Xcode测试(六)——代码覆盖率(Code Coverage)_第2张图片

4.点击关闭。

注意:收集代码覆盖率数据会导致性能损耗。无论损耗是否显著,它均会影响执行代码的线性方式,因此在测试运行中启用代码覆盖率,性能结果依然具有可比性。然而,当你正在认真评估测试程序性能时,你应该考虑是否启用代码覆盖率。

代码覆盖率如何符合测试

代码覆盖率是用来衡量测试价值的工具。它回答了以下问题

  • 当你运行测试时,什么代码真正运行?
  • 多少测试才算足够?
  • 换句话说,你是否设计足够的测试确保你所有的代码都检查了正确性和性能?
  • 代码的哪部分没有被测试?

在测试运行完成后,Xcode采用LLVM覆盖数据并在报告导航中创建覆盖率报告,参见覆盖率面板。它显示了测试的摘要信息,源文件和源文件中的方法列表以及每个文件中的覆盖百分比。

翻译:使用Xcode测试(六)——代码覆盖率(Code Coverage)_第3张图片

源代码编辑器展示了文件中代码的行数并高亮未执行的代码。它高亮需要覆盖的代码区域而非已经覆盖的区域。

例如,将指针放在 -[Calculator input:] 方法上,将显示一个按钮,将你导航到源代码。

翻译:使用Xcode测试(六)——代码覆盖率(Code Coverage)_第4张图片

覆盖注释在右边显示,显示了在测试中代码某个特定部分被执行的次数。例如:

翻译:使用Xcode测试(六)——代码覆盖率(Code Coverage)_第5张图片

input: 方法,在测试中被频繁调用。然而,有部分方法并未被调用。在源代码编辑器中有明显的标记,如图:

翻译:使用Xcode测试(六)——代码覆盖率(Code Coverage)_第6张图片

报告数据和显示建议编写一个测试,包括意外或无效的字符确保错误按照你的方式处理。

官方原文地址:

https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/07-code_coverage.html#//apple_ref/doc/uid/TP40014132-CH15-SW1

你可能感兴趣的:(翻译:使用Xcode测试(六)——代码覆盖率(Code Coverage))