如何使用 Xcode 4 和 OCUnit 运行应用程序测试?

Posted

技术标签:

【中文标题】如何使用 Xcode 4 和 OCUnit 运行应用程序测试?【英文标题】:how to run application testing using Xcode 4 and OCUnit? 【发布时间】:2011-05-29 09:53:59 【问题描述】:

我正在使用 OCUnit 编写单元测试,我尝试过 GHUnit 但它不适合我的情况。

我确实想运行应用程序测试,因为我的代码严重依赖于我的 ApplicationDelegate 实例。但我只能弄清楚如何运行逻辑测试而不是应用程序测试。

这是来自模板的示例测试代码,但是我的测试失败(没有应用程序委托)或根本没有运行测试代码。

- (void) testAppDelegate 

    id yourApplicationDelegate = [[UIApplication sharedApplication] delegate];
    STAssertNotNil(yourApplicationDelegate, @"UIApplication failed to find the AppDelegate");


我从苹果那里找到了一个guide,关于如何设置测试,但它不适用于 Xcode 4

【问题讨论】:

【参考方案1】:

在这里找到答案 how to implement application tests in xcode4?

假设您有一个名为“MyApp”的应用程序目标

    将“其他/Cocoa 单元测试包”类型的新目标添加到 项目,例如“MyAppTesting”。所有单元测试文件都位于此处。 转到 MyAppTesting 构建阶段并将 MyApp 添加为目标 依赖。这可确保在构建 MyApp 之前构建 MyAppTesting 目标。 打开 MyAppTesting 的构建设置 和改变 捆绑加载程序:$(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp 测试主机:$(BUNDLE_LOADER) 这会导致测试在 MyApp 中运行。 打开MyApp的Build Settings并更改 默认隐藏符号:否(两者都适用) 复制期间剥离调试符号:Debug:NO 通过这样做,您不必将每个 .m 文件都包含到测试目标中。

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。

以上是关于如何使用 Xcode 4 和 OCUnit 运行应用程序测试?的主要内容,如果未能解决你的问题,请参考以下文章

OCUnit、NSLog 和 XCode 3.1

Xcode 4 中的 SenTest OCUnit

在 iOS 开发中使用 OCUnit 对 XCode 4.5 中的核心数据对象进行单元测试

XCode OCUnit 在运行任何测试代码之前崩溃并出现 Abort 陷阱:6

如何从命令行在 iPhone 上启动 OCUnit 测试

iPhone 上的 ocunit 测试