6

我正在尝试将 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。非常感谢任何帮助。

4

1 回答 1

16

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

官方的 OCMock 步骤只是说下载并添加到目标,但没有告诉您添加复制阶段。我在测试目标中添加了一个新阶段,将框架复制到产品目录中,测试现在运行良好。

主应用程序会启动是非常出乎意料的,我希望这对其他人有所帮助。

编辑:

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

第1步 构建阶段 -> 新副本文件阶段

第2步 产品目录

第 3 步 在此处输入图像描述

第4步 成功!

于 2013-02-07T20:31:16.623 回答