这是一个试图完成本教程提供的GHUnit测试目标的问题。它是关于将测试目标链接到源目标,这样您就不必在测试目标中手动包含源文件。以下是提出的解决方案的节选。
使用Xcode 4为现有iOS项目添加单元测试
Project MyExistingApp ->+添加目标->iOS→其他的在;Cocoa单元测试包
将新目标命名为"Unit Tests"或"MyAppTests"
选择新的"Unit Tests"目标并单击Build Phases选项卡,展开target
依赖项并添加MyExistingApp作为目标依赖项
单击Build Settings选项卡并将Bundle Loader设置为
$ (BUILT_PRODUCTS_DIR)/MyExistingApp.app MyExistingApp
将测试主机构建设置设置为
$ (BUNDLE_LOADER)
在你的应用目标中,将Symbols Hidden by Default构建设置为
没有
我得到它编译与GHUnit测试目标下面的教程,但我得到一个运行时错误:
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,它会启动一个bundle加载器目标。但是GhUnit目标必须是可执行的。如果有人想分享如何将源文件链接到可执行目标,我会很感激。现在,我将使用GHUnit手动完成所有操作。
不确定这是否是正确的答案,但它对我有效:
我得到了GHUnits测试用例,并用SenTestCases包装它们。XCode自动调用sentestcase,所以我没有麻烦运行测试。
工作像一个魅力,得到我的异步测试没有任何更多的担心。