【发布时间】:2011-07-13 02:08:47
【问题描述】:
如何在每个构建上自动执行单元测试?
我尝试将单元测试目标作为依赖项添加到项目目标中,但这似乎无法运行实际测试。
【问题讨论】:
-
不是构建,而是进行单元测试,它负责编译目标和测试目标。
标签: xcode unit-testing xcode4 dependencies
如何在每个构建上自动执行单元测试?
我尝试将单元测试目标作为依赖项添加到项目目标中,但这似乎无法运行实际测试。
【问题讨论】:
标签: xcode unit-testing xcode4 dependencies
将“构建后测试”构建设置设置为“是”。选择 Product > Build For > Build For Testing 来构建项目并运行测试。
Xcode 5 更新
Xcode 5 不支持 Test After Build 构建设置。我不知道有什么方法可以在 Xcode 5 中的每个构建上自动运行测试。从 OS X 菜单栏中选择 Product > Test 或按 Command + u 在 Xcode 5 中运行单元测试。
【讨论】:
建立目标之间的关系:
然后要运行测试,请选择产品 > 测试,或者直接从键盘选择 ⌘U。这将:
【讨论】:
为了让 XCode 4 在构建时自动运行单元测试,我必须这样做。
【讨论】:
我想我应该对适合我的步骤进行高级解释。 (OS X 10.7.4,Xcode 4.3.3)如果您不熟悉 Build Phases 和 Schemes 之类的东西,这里是 Apple 提供的一个很好的资源:@987654321@
对于新项目,请确保在输入新项目名称的页面上选中“包含单元测试”复选框。单击 Project Navigator 中的项目图标以查看已自动创建的两个目标。它们将被称为“MyCocoaApp”和“MyCocoaAppTests”。选择 MyCocoaAppTests 目标(不是 MyCocoaApp 目标!)并从视图顶部的选项中选择“构建设置”。在视图顶部附近的搜索栏中输入“构建后测试”。您应该会看到“构建后测试”的单个设置,默认情况下它设置为 NO。单击 NO 设置并将其更改为 YES。再一步。提出项目方案。 (产品菜单 -> 编辑方案...)在左侧栏中选择“构建”。您应该在右侧看到您的两个目标和一些复选框。在“MyCocoaAppTests”行上,选中“运行”复选框并点击“确定”。你完成了。键入命令-B。您的应用将构建,单元测试将构建,单元测试将运行并在默认情况下出现错误时失败。
如果您必须将单元测试添加到现有项目,则涉及更多。首先,请按照 Apple 的说明操作:https://developer.apple.com/library/mac/#documentation/developertools/Conceptual/UnitTesting/02-Setting_Up_Unit_Tests_in_a_Project/setting_up.html#//apple_ref/doc/uid/TP40002143-CH3-SW1
如果您没有遗漏任何步骤,您现在应该设置单元测试,当您选择(产品菜单 -> 测试)时运行该测试。现在,执行上述两个步骤: 1) 将 MyCocoaAppTest 目标的“Test After Build”设置为 YES; 2) 在应用程序的方案的构建部分中选中 MyCocoaAppTest 目标的“运行”复选框。最后一步:您必须将新的“运行脚本”构建阶段添加到 MyCocoaAppTest 目标(不是 MyCocoaApp 目标!)。选择测试目标,点击“Build Phases”,点击右下角的“Add Build Phase”图标,选择“Add Run Script”。 “运行脚本”部分将在其他构建阶段下方打开。脚本字段中包含以下文本:“键入脚本或从工作区拖动脚本文件”。在该字段中,输入:“${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests”。 (包括引号。)
就是这样。按命令-B。您的应用程序应该构建。您的测试应该构建然后运行。祝你好运。唷。
【讨论】: