从Xcode 7中的覆盖统计信息中排除代码

Ewa*_*lor 39 xcode unit-testing xcode7

我在Xcode 7.0和Objective C(像这样)中启用了代码覆盖率统计,并且运行良好.

是否可以标记一些源代码行,以便覆盖率报告忽略它们?如果我使用lcov然后我可以使用LCOV_EXCL_STARTLCOV_EXCL_END标记(如在如何告诉lcov忽略源文件中的行)但Xcode不能识别那些.

Xcode是否有替代机制来执行此操作?

hec*_*ckj 7

Xcode7 及更高版本(基于一些论坛帖子),覆盖率系统使用 LLVM 的覆盖率生成和报告机制,其格式详细信息请参见http://llvm.org/docs/CoverageMappingFormat.html。从 Xcode 9 开始,此格式支持任何排除行(或其他结构)的方法。

生成的映射由llvm-cov导出为可使用的格式(txt 或 html),这实际上也没有太多排除机制。llvm-cov确实有一些简单的阈值,仅报告线路和区域的“大于”或“小于”覆盖范围,但我怀疑这并不完全是您根据上述问题所追求的。

  • 我很欣赏这个答案,即使它并不令人满意。强烈鼓励开发人员将 Guard 语句和其他检查放入代码中,在正常操作下永远不应该调用这些语句。这意味着,我们鼓励将永远不会被覆盖的代码行放入其中。 (2认同)