使用 Xcode 的 Scheme 来跑不同的测试集合

简介: 本文讲的是使用 Xcode 的 Scheme 来跑不同的测试集合,Eigen 这个项目用来介绍测试集再好不过。这个项目在过去3年里,程序包的大小,复杂度和开发人员的数量都不断增加,这是积极的迹象。这种测试模式让我们对这些变化更加顺手。
本文讲的是使用 Xcode 的 Scheme 来跑不同的测试集合,

Eigen 这个项目用来介绍测试集再好不过。这个项目在过去3年里,程序包的大小,复杂度和开发人员的数量都不断增加,这是积极的迹象。这种测试模式让我们对这些变化更加顺手。

在我最快的计算机上,我们只需要等一分钟—— Executed 1105 tests, with 1 failure (0 unexpected) in 43.221 (48.201) seconds 来执行整个测试集。我觉得我可以只用 20 秒来完成,所以我研究了如何用 AppCode 处理运行测试,这份指南可以让你基于这个技术轻松的在 Xcode 里搭建起测试集。

我曾经有一个 点子 在通常的测试中去节约时间,基于 代码注入 ,但它并没有完全解决问题,我希望是时间密集型的,当时还没有完全达到要求。

什么是 Schemes?

一个 Xcode scheme 定义了编译集合中的若干 target,编译时的一些设置以及要执行的测试集合。

如果你想的话,你可以自定义若干个 schemes,但是你同一时刻只能运行一个。你可以定义 scheme 是保存于一个工程中,也就是 scheme 是否针对所有包含那个工程的 workspace,否则就只是针对此 workspace。当你选中了一个 scheme,你也就选择了一个运行目标(也就是选择的产品构建的硬件架构)。

引用自 Apple

规划 Scheme

这个测试测试集大概有 50 个单元测试,看起来像是这样:

Tests

在你开始之前,你可能会说:“我只想做一些有关 Fairs 的测试”。因为我接下来的几天都将为了这个目标而努力。为了准备开始,我需要创建一个新的 Scheme。当你点击 Xcode 左上角的 Target / Sim 按钮的时候你就会看见这个 schemes。

Empty Scheme

在我看来,当我们需要创建一个新的 scheme 的时候,Xcode 会 modal(译注:"modal" 是弹出浮窗) 出一个选择窗口,你可以在这个窗口里选择 App 的 target,当你选择好某一个 target 时,你就可以按下 cmd + r 来运行这个 target。

New Scheme

我给它起名叫 "Artsy just for Fairs",因为我是唯一会看到它的人,所以我可以随意命名成我想要的。点击 "OK" 选择它,这个 modal 会被收起。你现在需要回到 target 选择,并且选择 "Edit Schemes ..." 来继续。

Edit Schemes

做一些修正

现在,在侧栏中点击 "Test",现在你进入了 Schemes 测试编辑器。这将是你接下来要干活的地方。

Empty Edit Schemes

你需要点击 "+" 来把你的测试 Target 添加到 Scheme

Test Scheme

选择并 "Add" 你的 Targets。这样你的 target 就成功的被添加了,然后你需要点击向下箭头让他来显示所有单元测试。

来,给你表演个魔法。按住 alt 并单击蓝色的的标记框把测试 target 关闭。然后不按住 alt 再单击一次。这将会取消选择所有的类,这是所有 Mac 应用都可以进行的通用操作,所以不要在意。

Deselect All

这就意味这你可以去寻找你想要运行的类,对我来说,我想要运行关于 Fairs 的单元测试。

Just The Good Tests

现在当我按下 cmd + u 就将指运行这些测试类。

封装起来

这意味着我可以以合理的步调继续我的工作了。Executed 15 tests, with 0 failures (0 unexpected) in 0.277 (0.312) seconds。现在我可以在我泡一杯茶的时间内运行一遍完整的单元测试集了。

额外提醒:如果你不想用鼠标来改变 scheme,这些 快捷键 可以让你在 scheme 之间上(cmd + ctrl + [)下(cmd + ctrl + ])切换。





原文发布时间为:2016年05月11日

本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。
目录
相关文章
|
6月前
|
存储 人工智能 C#
【Unity 3D】C#中数组、集合、栈、队列、哈希表、字典的讲解(附测试代码)
【Unity 3D】C#中数组、集合、栈、队列、哈希表、字典的讲解(附测试代码)
82 0
|
6月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
165 1
|
iOS开发
完整版在xcode打测试专用ipa包流程​
完整版在xcode打测试专用ipa包流程​
|
3月前
|
测试技术 虚拟化 iOS开发
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
这篇文章是iOS自动化测试方案的第二部分,详细介绍了在Xcode开发者工具中构建WebDriverAgent(WDA)应用到iPhone的全过程,包括环境准备、解决构建过程中可能遇到的错误,以及最终成功安装WDA到设备的方法。
182 0
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
|
3月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
115 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
5月前
|
Linux Shell 测试技术
Linux服务器测试脚本集合
LemonBench是iLemonrain创作的Linux服务器性能测试工具,能一键检测系统信息、网络、CPU、内存和硬盘性能。
55 0
|
5月前
|
Java
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
77 0
|
6月前
|
存储 人工智能 测试技术
软件测试/人工智能|一文告诉你Python集合相关知识
软件测试/人工智能|一文告诉你Python集合相关知识
|
iOS开发
完整版在xcode打测试专用ipa包流程​
前言:有时候,想要把自己的程序运行在别人的iphone手机上,但又不能通过本地真机调试的方法安装,这个时候我们就要打一个测试专用的ipa包给远方的测试小伙伴们测试。​
|
存储 测试技术 持续交付
自动化测试如何区分用例集合
业务增长自然而然带来的是流程的复杂度提升和业务场景的多样性,同时用户体验和线上的小问题影响范围,也会扩大。因此在测试case的覆盖率上,覆盖的颗粒度会更细致。
自动化测试如何区分用例集合