xcode – 添加OCMock会导致Test启动主应用程序而不是运行测试

我正在尝试将Ocmock添加到我现有的 Cocoa项目中,但我遇到了一个我没有看到其他人覆盖的奇怪问题.

我最终将它分离到以下内容:如果我只是将Ocmock.framework引用添加到我的项目中(即以某种方式将其拖到Link Binary With Libraries构建阶段),当我运行测试时,真正的应用程序将被启动.

没有Ocmock,输出正常:

Test Suite 'Multiple Selected Tests' started at 2013-02-07 20:07:03 +0000

使用Ocmock框架链接(部分输出):

Error loading MyProjTests.octest/Contents/MacOS/MyProjTests
Library not loaded: @rpath/Ocmock.framework/Versions/A/Ocmock
Reason: image not found
IDEBundleInjection.c: Error loading bundle '/Users/alex/Library/Developer/Xcode/DerivedData/MyProj-bqwyxyspdiudktfnjcdgibdmpgsa/Build/Products/Debug/MyProjTests.octest'

此后,其他应用程序输出显示为正常.当应用程序运行时,测试进度在项目导航器的最后一个选项卡上旋转,并且在您退出应用程序之前不会停止.因此,在您的应用运行的整个过程中,测试应该正在进行中.

清除测试主机或捆绑加载器没有解决,只产生错误架构的链接错误.

我正在使用最新的Xcode,4.6.任何帮助非常感谢.

解决方法

好的,终于弄清楚了,在我点击这里提交SO之前,所以我想我会分享答案.问题是Ocmock.framework在运行时不可用.

官方Ocmock步骤只是说下载并添加到目标,但不要告诉你添加复制阶段.我在测试目标中添加一个新阶段,将框架复制到产品目录中,现在测试运行正常.

主应用程序将启动是非常意外的,我希望这有助于其他人.

编辑:

添加图片.每个人都喜欢图片

步骤1

Build Phases -></p> New copy Files Phase

第2步

第3步

第4步

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...