如何在不显示时显示 Xcode 代码覆盖率?

How to display Xcode code coverage when it's not displaying?

我一直在尝试使用 Xcode9 获取我的项目的代码覆盖率。所有测试用例 运行 成功但未在代码覆盖率选项卡下生成代码覆盖率报告。

我尝试了以下操作:

  1. 在方案中启用收集代码覆盖。

  2. 为我的目标启用代码覆盖率支持。

  3. 启用展示包选项。

    检查代码覆盖率报告是否需要额外的设置?还是我应该错过什么?提前致谢。

Apple 方面存在已知错误,解决了 UI 测试目标 (https://openradar.appspot.com/24006783) 的代码覆盖缺失问题。

Xcode 版本 9.3 beta (9Q98q) 似乎可以解决问题,只要 Debug executable 未在测试模式中启用。

在 Xcode 构建方案编辑器 Test -> Info tab -> Debugger 中确保未选中复选框 Debug executable

9.3版本解决问题,获取代码覆盖率Target -> Test -> Options -> CodeCoverage 见图:


我很确定他们只是将代码覆盖率移到了一个新位置。我现在将其视为报告导航器的一部分(请参见下面的屏幕截图)。

要到达那里,首先打开代码覆盖支持(编辑方案 -> 测试 -> 选项 -> 检查代码覆盖框)然后在导航器的 xcode 左侧查看。在顶部你会看到一堆图标。单击右侧最后一个(它看起来像一个消息气泡)。

在该选项卡中,您将看到您 运行 进行的所有测试。每个测试中都有一个 "coverage" 项。单击其中之一以获取该特定测试的覆盖率报告。

如果您想在编辑器右侧查看代码覆盖率,请确保在编辑器[=17]中选择了显示代码覆盖率 =] 下拉菜单。

如果您喜欢我,但在您的架构中没有在 Target -> Test 上看到 Option 选项卡(或任何选项卡),这意味着您需要将测试架构添加到您的应用程序,或者您 select 错误的目标。

首先 select Manage Schemes...看看你有没有你的 TargetTest 以及它是否被选中。

其次,添加(小+按钮)和select你的测试目标。

顺便说一句,如果您没有测试包,请先将其添加到您的绑定列表中。

现在您将看到您的测试包,并且可以 select 并对其进行编辑。您将看到 Options 选项卡,以及已接受答案中提到的 Code Coverage

当您不得不在编辑方案(用于测试调试)的信息选项卡中取消选择调试器时的旧错误 'Debug executable' - 似乎已解决,但在 ARM M1 上有一个新错误,所以如果没有显示测试覆盖率 - 尝试为“My Mac (Rosetta)”或者如果由于使用特定于平台的框架(如 UIKit)而失败,在我的例子中是“我的 Mac(Mac Catalyst,Rosetta)。

它会更慢,但应该可以。