【问题标题】:XCode: Code coverage data generation failedXCode:代码覆盖率数据生成失败
【发布时间】:2016-10-28 12:41:13
【问题描述】:

当我尝试运行单元测试时,我在一个 Objective-C 项目中遇到了这个可怕的问题。我已经尝试了以下所有方法(根据各种 SOF 帖子):

  • 清除派生数据
  • 删除 ~/Library 中的所有模拟器设置
  • 重新启动 XCode
  • 重启 MBP
  • 多次重置模拟器
  • 换成不同的模拟器(甚至尝试过我从未使用过的模拟器)

我检查了控制台日志,发现:

  26/06/2016 9:20:10.973 PM com.apple.debugserver-@(#)PROGRAM:debugserver  PROJECT:debugserver-350.0.21.9
  [7768]: 1 +0.000000 sec [1e58/1003]: error: ::read ( 3, 0x700000080a40, 1024 ) => -1 err = Bad file descriptor (0x00000009)

我没有使用 Cocoapods。

有人知道接下来要尝试什么吗?

【问题讨论】:

标签: xcode unit-testing


【解决方案1】:

您是否在应用中使用第三方框架?在我的项目中链接到第三方框架并尝试运行测试时,我注意到了这个问题。

问题是测试包在运行时找不到框架。您可以通过添加 $(PROJECT_DIR)/Frameworks 来更新测试目标的 Runpath Search Paths 构建设置来解决此问题(假设您将框架保留在该位置)。

可以通过以下步骤找到设置:

Project file -> Test target -> Build Settings -> Runpath Search Paths

【讨论】:

  • 谢谢,原来是这个问题。 Xcode 确实需要清理这个错误,因为它并不明显。
  • 似乎不适用于 XCode 8.1.2....但无论如何试一试...但谁知道它是否适用于其他人...真是一团糟,工作带框架
  • 您必须确保$(PROJECT_DIR)/Frameworks 是您框架的目录。例如,如果您使用 Carthage,它可能是 $(PROJECT_DIR)/Carthage/Build/iOS
猜你喜欢
  • 1970-01-01
  • 2015-11-20
  • 2016-10-09
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
  • 1970-01-01
  • 2012-11-01
相关资源
最近更新 更多