30

我尝试使用 Add Target -> Add Cocoa Touch Unit Testing Bundle 在 Xcode 5 上添加测试目标。但是,当我运行测试时,出现以下错误:

2013-09-24 10:43:14.446 Stack Exchange[48895:c07]加载 /Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/时出错Stack Exchange 测试:dlopen(/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange 测试,262):库未加载: /Developer /Library/Frameworks/XCTest.framework/XCTest 引用自:/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange测试原因:找不到图像IDEBundleInjection.c:加载包时出错 '/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest'程序以退出代码结束:0

为什么这不起作用?

4

3 回答 3

76

您必须在 iOS 7 模拟器上运行测试。它不适用于 iOS 6.x。

于 2013-09-24T15:46:10.720 回答
2

我已经通过将 General Tab -> Deployment Target 设置为 7.0 来解决这个问题(对于您用来“运行”单元测试的应用程序)。如果你想为你的主应用程序支持早于 7.0 的版本,这不是很好。但是由于单元测试构建目标上没有部署目标,因此您无法将其设置在那里。相反,您必须将单元测试的目标(在常规选项卡上)设置为部署目标为 7.0 的应用程序。您可以设置“TestApp”来执行此操作,因此您不必限制主应用程序的部署。

于 2013-12-18T19:34:52.570 回答
0

尽管我的 CI 服务器配置了 Xcode 5.1.1 和 iOS 7.1,但我遇到了完全相同的问题。试了很多参数,终于选对了-destination

这是一个完整命令的示例:

xcodebuild -workspace MyApp.xcworkspace -sdk iphonesimulator7.1 -destination "platform=iOS Simulator,name=iPhone Retina (4-inch)" -scheme MyAppTests test

它也适用于xctool0.1.16。

学分:http ://www.mokten.com/2014/04/xcodebuild-unit-tests-library-not-loaded-no-image-found/

一个可以解释为什么我必须添加-destination参数的细节是,我同时安装了 iOS 6 和 7.1 SDK。我还没有检查如果我删除 iOS 6 SDK 会发生什么。

高温高压

于 2014-10-09T06:49:34.103 回答