iOS精品文章-单元测试iOS Developer程序员

翻译:使用Xcode测试(七)——测试过程自动化(Automat

2016-09-09  本文已影响276人  栗子烤肉

除了在开发过程中交互运行测试,还可以使用服务器自动运行测试。

基于服务器的连续集成测试

交互使用Xcode测试功能,保证你的代码保持特定要求,并确保开发中的bug容易发现和修复。一套快速运行的功能测试保证你的工作并确保app功能有效运行。

即,成功的开发项目往往不止有一个开发人员实现和管理。像源代码管理,基于服务自动化测试有这些好处:使开发精力集中在团队高效。

使用基于服务器测试有以下好处:

命令行测试

使用Xcode命令行工具,你可以使用脚本自动构建和测试你的项目。

使用xcodebuild测试

xcodebuild命令行工具像Xcode IDE一样驱动测试。运行xcodebuild,使用destination参数指定不同的目标。例如,为了测试本地OS X的MyApp,使用这个命令指定目标。

<pre><code>

xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination 'platform=OS X,arch=x86_64'

</pre></code>

如果你连接了开发功能可用的设备,你可以通过名字或id调用。例如你有一个名为“开发iPod touch”的ipod touch连接设备,你可以使用下面的命令测试你的代码:

<pre><code>

xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination 'platform=iOS,name=Development iPod touch'
</pre></code>

可以在模拟器上运行测试。使用模拟器以针对不同因素,操作系统和系统版本。模拟器的目标可以指定名称或id。例如:

<pre><code>

xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination 'platform=Simulator,name=iPhone,OS=8.1'
</pre></code>

destination参数可以连接在一起,一个命令在指定共享配置目标上执行测试。例如,下面的命令链将前面三个例子结合在一起变成一个命令:

<pre><code>

xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp
-destination 'platform=OS X,arch=x86_64'
-destination 'platform=iOS,name=Development iPod touch'
-destination 'platform=Simulator,name=iPhone,OS=9.0'
</pre></code>

如果测试失败,xcodebuild返回非零退出代码。

关于命令行运行测试,你需要知道一些基本要素。关于xcodebuild的详细信息,在终端应用窗口使用man
<pre><code>

man xcodebuild
</pre></code>

使用xcodebuild的ssh

从ssh远程登录(或启动守护进程)调用xcodebuild会失败,除非主机上创建正确会话环境。

当你作为用户登陆到你的OS X系统时会创建“Aqua会话”环境。Aqua会话初始化OS X交互环境,为了可以运行OS X应用,这些是必需的。更具体来说,使用UI框架(APPKit或UIKit)代码需要运行Aqua会话。因为这个要求,在OS X上测试(或测试模拟器或OS X 应用)需要Aqua会话。

默认情况下,当你使用ssh登陆没有运行用户会话的OS X系统,会创建命令行会话。为了确保ssh登陆时创建了Aqua会话,你必须有用户登陆到远程OS X主机系统。远程系统上有运行的用户时,会强制ssh登陆创建Aqua会话。

一旦有一个用户在主机系统上运行,从ssh登陆为所有类型测试运行xcodebuild。例如,下面终端应用命令运行测试开发系统上的“MyApp”:

<pre><code>

ssh localhost
cd ~/Development/MyAppProject_Folder
xcodebuild test -project MyApp.xcodeproj -scheme MyApp -destination 'platform=Simulator,name=iPhone 6'
</pre></code>

需要深入了解ssh,启动守护进程和启动代理,以及他们如何与系统交互,参见技术说明文档守护进程和代理及守护进程和服务变成指南(Daemons and Agents and Daemons and Services Programming Guide)。

使用Xcode服务器并持续集成

通过Xcode服务器,Xode支持完全集成基于服务器持续集成工作流。Xcode服务器可用于OS X 服务器,自动构建、分析、测试和归档app。Xcode服务器和持续集成工作流对于交互式开发工作是无缝和透明的。

学习所有关于设置并使用Xcode服务器,参见Xcode服务器并持续集成指南( Xcode Server and Continuous Integration Guide)。

官方原文地址:

https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/08-automation.html#//apple_ref/doc/uid/TP40014132-CH7-SW1

上一篇下一篇

猜你喜欢

热点阅读