运行测试和查看结果很容易使用Xcode测试导航器,就像您在快速入门中看到的。有几种额外的交互方式来运行测试。Xcode根据在方案中包含和启用的测试目标运行测试。测试导航器允许您直接控制在方案中包括,启用或禁用哪些测试目标,类和方法,而无需使用方案编辑器。
运行测试的命令
测试导航器为您提供了一种简单的方法来运行测试,作为编程工作流程的一部分。测试也可以直接从源代码编辑器或使用产品菜单运行。
使用测试导航器
当您将指针放在测试导航器中的包,类或方法名称上时,会出现运行按钮。您可以根据在测试导航器列表中保存指针的位置,运行一个测试,类中的所有测试或捆绑中的所有测试。
要运行捆绑包中的所有测试,请将指针保持在测试包名称上,然后单击右侧显示的运行按钮。
要运行类中的所有测试,将指针保存在类名称上,然后单击右侧显示的“运行”按钮。
要运行单个测试,请将指针保持在测试名称上,然后单击右侧显示的“运行”按钮。
使用源代码编辑器
当您在源代码编辑器中打开一个测试类时,每个测试方法名称旁边的消息框中会显示一个清晰的指示符。将指针保持在指示器上显示运行按钮。单击运行按钮运行测试方法,然后指示器将显示测试的通过或失败状态。将指针保持在指示器上将再次显示运行按钮以重复测试。这种机制一次只运行一个测试。
注意: 同样的指示器也出现@implementation在类的旁边,允许您运行类中的所有测试。
使用产品菜单
产品菜单包括可以直接从键盘运行测试的快速访问命令。
产品>测试。运行当前活动方案。键盘快捷方式是Command-U。
产品>构建>测试和产品>执行操作>无需构建的测试。这两个命令可用于构建测试包产品,并独立于彼此运行测试。这些是方便的命令来快速构建和测试过程。当更改代码以检查构建过程中的警告和错误时,以及当您知道构建是最新的时,可以加快测试速度。键盘快捷键分别是Shift-Command-U和Control-Command-U。
产品>执行操作>测试<testName>。当您编辑测试方法并允许使用键盘快捷方式运行该测试时,此动态菜单项感测编辑插入点所在的当前测试方法。命令的名称适合显示它将运行的测试,例如,产品>执行操作>测试testAddition。键盘快捷键是Control-Option-Command-U。
注意: 除了源编辑器之外,此命令还基于项目导航器和测试导航器中的选择进行操作。当这两个导航器中的任一个活动时,源编辑器不具有焦点,并且该命令在这些导航器中的任一个中采用当前选择用于输入。在测试导航器中,选择可以是测试包,类或方法。在项目导航器中,选择可以在测试类实现文件上,例如CalcTests.m。
产品>执行操作>再次测试<testName>。重新运行最后执行的测试方法,在调试/编辑代码时最有用,其中测试方法暴露了问题。与产品>执行操作>测试命令类似,命令中显示运行的测试的名称,例如,产品>执行操作>再次测试testAddition。键盘快捷键是Control-Option-Command-G。
显示测试结果
XCTest框架以多种方式向Xcode显示测试方法的通过或失败结果。以下屏幕截图显示了您可以在哪里查看结果。
在测试导航器中,可以在运行测试或测试组后查看通过/失败指示器。
如果测试方法折叠到它们各自的类中,或者将测试类折叠到测试包中,则指示符反映所包含的测试的总体状态。在此示例中,类中的至少一个测试BasicFunctionsTests已发出故障信号。
在源代码编辑器中,您可以查看通过/失败指示符和调试信息。
在报告导航器中,您可以查看通过测试运行输出的结果。激活“测试”面板后,在左侧面板中选择要检查的测试运行。。
对于性能测试,单击“时间”列中的值以获取有关性能结果的详细报告。您可以通过单击单个测试运行按钮来查看测试的总体性能以及每个运行的值。使用“编辑”按钮可以设置或修改测试基线和通过或失败指示中允许的最大标准偏差。
使用“日志”面板,可以查看关联的故障描述字符串和其他摘要输出。通过打开公开三角形,可以向下获取测试运行的所有详细信息。
注意: 除了项目条目左侧的公开三角形之外,测试失败项目右侧的小图标可以展开以显示更多信息,如testMultiplication上面显示的故障中所示。
调试控制台以文本格式显示有关测试运行的全面信息。它与日志导航器显示的信息相同,但如果您一直积极从事调试,则调试会话的任何输出也会出现在那里。
使用方案和测试目标
Xcode方案控制构建,运行,测试和调试菜单命令的功能。当您创建测试目标并使用测试导航器执行其他测试系统操作时,例如,当您启用或禁用测试方法,测试类或测试包时,Xcode会为您管理方案配置。使用Xcode Server和持续集成需要使用“管理方案”表中的复选框将方案设置为“共享”,并将其与您的项目和源代码一起检入源存储库。
要查看测试的方案配置:
1.在工具栏中选择方案菜单>管理方案以显示方案管理表。
在这个项目中有两个方案,一个构建应用程序,另一个构建库/框架。标记为“共享”的复选框将方案配置为共享方案,可供机器人与Xcode Server一起使用。
2.在管理表中,双击方案以显示方案编辑器。方案的测试操作标识Xcode在执行测试命令时执行的测试。
注意: 与测试目标,测试类和测试方法相关联的测试导航器和配置/设置助手通常会为您保留有关测试操作的所有方案设置。
有关使用,配置和编辑方案的大量信息,请参见视频演示WWDC 2012:在Xcode中使用方案和项目(408)。
构建设置 - 测试应用程序,测试库
应用程序测试在应用程序的上下文中运行,允许您创建测试,这些测试将来自不同类,库/框架和应用程序的功能方面的行为组合在一起。库测试在库或框架中独立于您的应用程序执行类和方法,以验证它们的行为与库的规范要求相同。
这两种类型的测试包需要不同的构建设置。当您通过在新目标助理中选择目标参数来创建测试目标时,将为您配置构建设置。目标助手显示为打开目标弹出菜单。应用程序,SampleCalc和库/框架CalcLibrary,是可用的选择。
选择SampleCalc作为此测试目标的关联构建产品将配置应用程序测试的构建设置。应用程序进程托管您的测试的执行; 在接收到applicationDidFinishLaunching通知之后执行测试。SampleCalc在这种情况下,测试目标的默认产品名称“SampleCalc Tests”来自目标名称; 你可以改变它,以适应你的喜好。
如果您选择CalcLibrary作为关联的构建产品,目标助理将配置库测试的构建设置。Xcode引导测试运行时上下文,库或框架,并且测试代码由Xcode管理的进程托管。此案例的默认产品名称来自库目标(“CalcLibrary Tests”)。您可以根据您的偏好更改它,就像应用程序测试用例一样。
构建设置默认值
对于大多数情况,选择正确的测试目标来构建产品关联是您为配置应用和库测试的构建设置所需要做的。Xcode会自动管理你的构建设置。因为您可能有一个项目需要一些复杂的构建设置,所以了解Xcode为应用程序测试和库测试设置的标准构建设置很有用。
该SampleCalc项目作为示例说明正确的默认设置。
1.通过单击SampleCalc项目导航器中的项目来输入项目编辑器,然后选择SampleCalcTests应用程序测试目标。
在编辑器的“常规”窗格中,将显示“目标”弹出菜单。弹出菜单应将SampleCalc应用程序显示为目标。
您可以检查构建设置对SampleCalcTests目标是否正确。
2.单击构建设置,然后键入Bundle Loader搜索字段。应用程序SampleCalc加载的应用测试SampleCalc。您将看到可执行文件的路径作为Debug和Release版本的自定义参数。如果您搜索Test Host,将显示相同的路径,如图所示。
此项目的计算器库目标是命名的CalcLibrary,并具有关联的测试目标命名CalcLibraryTests。
3.选择CalcLibraryTests目标和常规窗格。
目标设置为None。类似地Bundle Loader,Test Host在“构建设置”面板中检查和,没有相关联的参数。这表示Xcode已使用默认值配置它们,这是正确的配置。