【问题标题】:Adding OCMock causes Test to launch main app instead of running tests添加 OCMock 会导致 Test 启动主应用程序而不是运行测试
【发布时间】:2013-01-23 12:03:46
【问题描述】:

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

【问题讨论】:

    标签: xcode unit-testing compilation ocmock


    【解决方案1】:

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

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

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

    编辑:

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

    第 1 步

    第 2 步

    第 3 步

    第 4 步

    【讨论】:

    • 那是救命稻草!正是我所缺少的。
    • 谢谢。今天自己打这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2014-11-11
    相关资源
    最近更新 更多