如何在 XCode4 中运行单元测试而无需切换到 UnitTest 配置文件/目标?

Posted

技术标签:

【中文标题】如何在 XCode4 中运行单元测试而无需切换到 UnitTest 配置文件/目标?【英文标题】:how can I run Unit Tests in XCode4 without having to swap to UnitTest profile/target? 【发布时间】:2011-05-04 20:18:46 【问题描述】:

如何在 XCode4 中运行单元测试而不必切换到 UnitTest 配置文件/目标?

因此,在 XCode4 中的正常“在模拟器上构建/运行”配置文件中,有没有办法(例如快捷键或其他方式)来启动在另一个目标中设置的单元测试?

所以从 XCode4 目标视图来看: * myAppTarget - XCode 当前设置为 * unitTestTarget - 想要触发这些运行的捷径

一种非常有效的自动化方法,相当于: * 将 Xcode 切换到 UnitTest 目标 * 运行单元测试 * 切换回正常的 myAppTarget

【问题讨论】:

⌘-U 如果您使用的是内置的 SenTestingKit 单元测试。您是否使用第三方测试框架? @Jonah - 只使用 XCode 附带的东西 - 当我在 Xcode 4.0.2 中的正常项目目标中时,我实际上遇到了 ⌘-U XCode 崩溃 - 我一直将这些提交给苹果。我不记得它之前做了什么,但我认为它没有启动单元测试......希望 Xcode 的下一个补丁版本能够解决问题,所以我可以试试你说的 建立一个全新的项目。请务必选择“包括单元测试”。查看 ⌘-U 是否适用于模板代码。 @Jon - 我设置了一个带有单元测试的新测试项目 - 我现在看到我需要的测试在配置文件配置中 - 现在可以让 ⌘-U 工作。 【参考方案1】:

值得注意的是,Xcode 4 下的单元测试与以前的版本有很大不同。正如其他人评论的那样,在目标的测试操作中自动设置单元测试的最简单方法是在创建目标时选择“包括单元测试”。这将创建一个 OCUnit 捆绑目标,并在方案的 Test 操作中自动设置它。

如果您要转换旧项目,您可能希望删除为 OCUnit 目标自动创建的方案,并在相应主目标的方案中编辑测试操作以添加来自 OCUnit 目标的测试。任何链接到 SenTestingKit 的 OCUnit 包都可以在这里找到。然后应该能够使用 ⌘-U 运行单元测试。

要选择为方案运行哪些单元测试,请编辑方案的测试操作,其中复选框可用于每个测试和测试类。

【讨论】:

【参考方案2】:

我不确定它是否正是您的意思,但是如果您创建一个包含逻辑测试的目标,您可以设置要在构建时执行的逻辑测试,并依赖于您的正常项目来编译逻辑测试项目也。

这样,您可以在构建项目时强制您的项目运行逻辑测试。

【讨论】:

你是怎么做的 Theo - 我在我的 appTarget 构建方案中,在“BUILD”下,我看到 App 行,所有复选框都打勾,然后第二行是 UnitTest,只有“测试”复选框打勾。但是,当我点击 BUILD 时,它似乎仍然没有导致单元测试运行? 在目标的构建选项(具有很多奇怪设置的 p 列表)中有一个“构建后测试”设置。 (抱歉回答慢)

以上是关于如何在 XCode4 中运行单元测试而无需切换到 UnitTest 配置文件/目标?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Xcode4 中“测试”当前文件?

使用命令行的 Xcode 4 单元测试

根据输入到单元格中的数字为单元格分配颜色和值,而无需点击运行按钮

Xcode 4.4单元测试未完成[重复]

如何使用 Xcode 4 在 Cocoa Touch 单元测试包中创建应用程序测试?

测试驱动开发 (TDD):在 Xcode 4 中编写单元测试