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

时间:2013-02-07 20:31:17

标签: xcode unit-testing compilation ocmock

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

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

没有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。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:15)

好的,终于明白了,在我点击这里提交之前,所以我想我会分享答案。问题是OCMock.framework在运行时不可用。

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

主应用程序启动时出乎意料,我希望这有助于其他人。

编辑:

添加了图片。每个人都喜欢图片

第1步 Build Phases -> New copy Files Phase

第2步 Products Directory

第3步 enter image description here

第4步 Success!