翻译:使用Xcode测试(四)——运行测试并查看结果(Running Tests and Viewing Results)

使用Xcode测试导航可以很容易运行测试并查看结果。还有其他几种方式运行测试。Xcode基于测试target运行测试。使用测试导航,你可以直接启用和禁用测试target,类和方法,而不需要使用编辑器。

运行测试命令

测试导航为你提供一种简单的方式运行测试,运行测试是编程流程的一部分。可以在源代码编辑器或在菜单直接运行测试。

使用测试导航

当你将指针移到测试导航中的bundle、类或方法名上,会出现一个运行按钮。你可以运行一个测试或类中的所有测试或者bundle中所有的测试,这取决于你指针指在测试导航列表的位置。

  • 要运行bundle中的所有测试,在测试bundle名上按住指针并单击右边出现的运行按钮。
  • 要运行类中的所有测试,在类名上按住指针并单击右边出现的运行按钮。
  • 要运行一个测试,在测试名上按住指针并单击右边出现的运行按钮。
使用源代码编辑器

当你在源代码编辑器中打开测试类时,在每个测试方法名旁边会出现一个指示器。将指针放到指示器上会显示一个运行按钮。点击运行按钮运行测试方法,指示器会显示测试时通过或失败。将指针放置在指示器上回重新显示运行按钮,可以重复测试。此处机制是一次只能运行一个测试。

注意:在类的实现旁边会出现同样的指示器,你可以运行类中的所有测试。

使用产品菜单

产品菜单包括在键盘输入快速访问命令直接运行测试。

  • Product > Test.运行当前scheme。快捷键是Command-U。
  • Product > Build for > TestingProduct > Perform Action > Test without Building。这两个命令可以用来build测试bundle产品同时独立运行测试。这些
    命令是测试build和测试过程的快捷方式。当更改代码后,在build过程中检查警告和错误时非常有用,快捷键分别是Shift-Command-U 和 Control-Command-U。
  • Product > Perform Action > Test ****。例如, Product > Perform Action > Test testAddition。快捷键是Control-Option-Command-U。

注意:除了源代码编辑器,这个命令在项目导航和测试导航中均可用。
在测试导航中,可以选择测试bundle,类或方法。在项目导航中,可以选择测试类实现文件,例如,CalcTests.m

  • **Product > Perform Action > Test Again **。重新运行最新测试方法,当调试/编辑代码时非常有用。类似Product > Perform Action > Test命令,快捷键是Control-Option-Command-G。

显示测试结果

XCTest框架会在Xcode中显示测试方法通过或失败。从下面的截图可以看到结果。

  • 在测试导航中,你可以在测试或一组测试运行后查看通过或失败指示。


  • 如果测试方法嵌入在相关类或测试bundle中,该指示反映的是整个测试类或测试bundle的状态。在这个例子中,BasicFunctionsTests类中至少有一个测试失败。

  • 在源编辑器中,你可以查看通过或失败指示并调试信息。
  • 在报告导航中,你可以查看测试运行结果输出。在左边面板中选择你想要检查的测试,并选择测试面板进行查看。
  • 性能测试,点击时间列中的值以获得详细的性能结果报告。你可以查看测试总性能,也可以通过点击单个测试运行按钮,查看十次运行结果。使用编辑按钮可以设置或修改测试的基准线,设置通过或失败指示的最大标准误差。
  • 使用日志面板,你可以查看相关失败描述和其他摘要输出。通过点开小三角,你可以深入到运行测试中的所有细节。

注意:除了项目左边的小三角,测试失败右边的小图标也可以展开更多的信息,你可以看到testMultiplication失败。

  • 调试控制台显示运行测试的综合信息。与日志导航一样展示信息,如果你一直在调试,调试的其他信息也会出现在这里。

使用scheme和测试target

Xcode scheme控制build,运行,测试,调试菜单命令。当你在测试导航中创建测试target、执行其他系统操作时,Xcode管理scheme配置,例如,当你启用或禁用测试方法、测试类或测试bundle。在管理Scheme菜单中勾选共享复选框,可以使用Xcode服务并持续集成,并管理项目和源代码。

查看测试的配置scheme:

  1. 在工具栏中选择Scheme menu > Manage Schemes。

在这个项目中有两个scheme,一个build应用,另一个build库/框架。配置scheme的右边有个复选框,表明scheme是否共享Xcode服务。

2.​在管理表单中,双击scheme使之显示在scheme编辑器中。当你执行测试命令时,scheme的中Test表示Xcode执行测试。

注意:测试导航和配置/设置助手与测试target、测试类和测试方法相关联,通常管理测试相关设置。

关于使用配置和编辑可用scheme,参见编辑scheme帮助(Scheme Editor Help)和在Xcode中使用scheme和project( WWDC 2012: Working with Schemes and Projects in Xcode (408))。

build设置——测试应用,测试库

应用测试运行在你的应用环境中,可以结合app中不同的类、库/框架进行功能测试。库测试可以不依赖app,独立测试库或框架的类或方法,验证行为是否符合库的要求。

不同的build设置需要两种测试bundle。当你在新建target窗口中选择target参数并创建测试target时,会自动配置build设置。可以选择应用SampleCalc,和库/框架CalcLibrary

选择SampleCalc作为build产品的测试target。应用进程管理测试的执行,测试接收applicationDidFinishLaunching通知后执行。默认产品名称“SampleCalc Tests,”来自SampleCalc;你可以按你自己的喜好改变它。

如果你选择CalcLibrary作为相关build产品,target助手配置build设置为库测试。Xcode启动测试运行时环境,库或框架,测试代码由Xcode管理。默认产品名称来自库target(“CalcLibrary Tests”)。你可以按你自己的喜好改变它。

默认build设置

在大多数情况下,为app或库测试配置build设置时,你只需要选择正确的测试target关联产品。Xcode自动为你管理build设置。因为你需要自己设置一些复杂build的项目,理解标准build设置是非常有用的。

SampleCalc项目作为例子来说明正确的默认设置。

1.在项目导航点击SampleCalc进入项目编辑器,选择SampleCalc作为测试target。

在编辑器中的通用面板中,显示Target弹窗。弹窗中显示SampleCalc作为target。

你可以检查build设置SampleCalcTests是否为target。

2.单击build设置,然后在搜索区域中输入 Bundle LoaderSampleCalc应用将加载SampleCalc的测试。你会看到调试和发布版本的自定义参数路径。

如果你搜索 Test Host会出现相同的路径,如下图所示。

本项目的计算器库target是CalcLibrary,相关的测试target是CalcLibraryTests

3.选择CalcLibraryTeststarget和通用面板。

target设置为None。同样检查build设置面板中的 Bundle LoaderTest Host没有相关的参数。这表明Xcode设置了默认值,这是正确的配置。

官方原文地址:

https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/05-running_tests.html#//apple_ref/doc/uid/TP40014132-CH5-SW1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容