如何在 Xcode 9.4 中消除此错误生成代码覆盖率

How to get rid of this Error Generating Code Coverage in Xcode 9.4

当我尝试 运行 我的 UI 测试时,我不断看到这个弹出窗口 "Error Generating Code Coverage ",然后是另一个错误包标识符丢失。我在测试方案中启用了代码覆盖率。我真的很期待 运行 我的 UI 测试没有这个阻塞错误。

我临时解决了这个问题,但不确定它是否是正确的解决方案。

每次我需要清理项目时

Xcode -> 首选项 -> 派生数据(删除此文件夹)

构建项目,然后 运行 测试。

我在使用 iOS < 10 的模拟器时遇到此错误。因此使用更高版本的 iOS 版本模拟器为我解决了这个问题

我曾经遇到过类似的问题,下一个错误日志:

14:35:45.129 Xcode[83419:1712361] _finishWithError:Error Domain=IDETestOperationsObserverErrorDomain Code=5 "Launch session expired before checking in." UserInfo={NSLocalizedDescription=Launch session expired before checking in.}

通过将遗漏的框架添加到单元测试目标来解决此问题:

  • 将构建的框架拖到测试目标的 Link 二进制文件构建阶段。
  • 在构建设置选项卡下的测试目标中,将 @loader_path/Frameworks 添加到运行路径搜索路径(如果它不存在)。
  • 确保依赖项存在于测试包中。使用 Frameworks 目标创建一个新的 Copy Files 构建阶段,然后在那里也添加框架引用。

Apple 有一个问题已在 Xcode 9 公开雷达下提交,并已通过 XCode 10

解决

一个可能的解决方案是:

  • 移动到 Xcode 10 并在构建设置中启用代码覆盖率。

  • 此外,在您的测试方案中,通过进入测试操作并检查 "Enable the Code Coverage checkbox" 收集覆盖率数据(如问题图片所示)