iphone:无法将gh-unit目标链接到app目标,无法执行二进制文件

时间:2011-11-21 05:52:17

标签: iphone binary targets gh-unit

这是一个试图通过GHUnit测试目标完成tutorial提供的内容的问题。它是关于将测试目标链接到源目标,这样您就不必手动将源文件包含在测试目标中。以下是提出的解决方案的摘录。

  

将单元测试添加到使用Xcode 4的现有iOS项目

     

Project MyExistingApp - > +添加目标 - > iOS - >其他 - >可可单元测试包

     

将新目标命名为“单元测试”或“MyAppTests”

     

选择新的“单元测试”目标,然后单击“构建阶段”选项卡,展开“目标”

     

依赖关系并将MyExistingApp添加为目标依赖关系

     

单击Build Settings选项卡,将Bundle Loader设置为

     

$(BUILT_PRODUCTS_DIR)/MyExistingApp.app/MyExistingApp

     

将“测试主机”构建设置设置为

     

$(BUNDLE_LOADER)

     

在您的应用目标中,将默认构建隐藏的符号设置为

     

我按照教程使用GHUnit Test Target进行编译,但是我遇到了运行时错误:

warning: This configuration supports "Darwin64" but is attempting to load
an executable of type i386 which is unlikely to work.
Attempting to continue.
`/usr/lib/dyld' has changed; re-reading symbols.
warning: Inconsistent DBX_SYMBOL_SIZE

/Users/...Tests.app/Tests: /Users...Tests.app/Tests: cannot execute binary file

感谢您的帮助!

修改

我意识到上面发布的教程和使用GHUnit有一个问题。上面的教程假设您正在使用OCUnit,它将启动捆绑加载器目标。但是,GhUnit目标必须是可执行文件。如果有人想分享如何将源文件链接到可执行目标,我会欣赏它。现在,我将使用GHUnit手动完成所有操作。

1 个答案:

答案 0 :(得分:0)

不确定这是否是正确的答案,但它对我有用:

我得到了GHUnits测试用例,并用SenTestCases包装它们。 XCode自动调用SenTestsCases,因此运行测试没有任何麻烦。

像魅力一样工作,不用担心我的异步测试。