2

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

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

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

将新目标命名为“Unit Tests”或“MyAppTests”</p>

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

依赖项并将 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,它会启动一个捆绑加载器目标。然而,GhUnit 目标必须是可执行文件。如果有人想分享如何将源文件链接到可执行目标,我将不胜感激。现在,我将使用 GHUnit 手动完成所有操作。

4

1 回答 1

0

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

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

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

于 2013-06-11T15:03:42.973 回答