翻譯:使用Xcode測試(七)——測試過程自動化(Automating the Test Process)

除了在開發(fā)過程中交互運(yùn)行測試汞窗,還可以使用服務(wù)器自動運(yùn)行測試。

基于服務(wù)器的連續(xù)集成測試

交互使用Xcode測試功能,保證你的代碼保持特定要求,并確保開發(fā)中的bug容易發(fā)現(xiàn)和修復(fù)贬媒。一套快速運(yùn)行的功能測試保證你的工作并確保app功能有效運(yùn)行。

即肘习,成功的開發(fā)項(xiàng)目往往不止有一個(gè)開發(fā)人員實(shí)現(xiàn)和管理际乘。像源代碼管理,基于服務(wù)自動化測試有這些好處:使開發(fā)精力集中在團(tuán)隊(duì)高效漂佩。

使用基于服務(wù)器測試有以下好處:

  • 使用服務(wù)器脫機(jī)生成和測試脖含,使你的開發(fā)系統(tǒng)可以執(zhí)行和調(diào)試,特別是在完整測試需要很長時(shí)間運(yùn)行的情況下投蝉。
  • 使用相同的配置养葵,開發(fā)團(tuán)隊(duì)的所有程序可以在服務(wù)器上運(yùn)行相同的測試,這樣提高測試的一致性墓拜。服務(wù)器也生成產(chǎn)品給整個(gè)團(tuán)隊(duì)港柜,就像生成和測試報(bào)告一樣请契。
  • 你可以根據(jù)項(xiàng)目和團(tuán)隊(duì)的需要調(diào)整配置咳榜。例如,團(tuán)隊(duì)任何成員提交新工作到源代碼管理系統(tǒng)或定期在設(shè)置時(shí)間段中提交新工作時(shí)爽锥,可以啟動運(yùn)行測試涌韩。運(yùn)行測試也可以在需要時(shí)手動啟動。
  • 服務(wù)器以相同方式運(yùn)行測試氯夷。服務(wù)器報(bào)告提供一段時(shí)間內(nèi)構(gòu)建問題臣樱、構(gòu)建警告和測試決議的圖片。
  • 你的項(xiàng)目可以在更多的目標(biāo)上測試腮考,自動運(yùn)行測試系統(tǒng)比手動方式更經(jīng)濟(jì)雇毫。例如,你可以將任意數(shù)量的iOS設(shè)備連接到服務(wù)器踩蔚,使用一個(gè)配置棚放,該系統(tǒng)可以構(gòu)建和測試庫、應(yīng)用程序,并在所有設(shè)備上運(yùn)行測試馅闽,同時(shí)測試多個(gè)版本的模擬器飘蚯。

命令行測試

使用Xcode命令行工具馍迄,你可以使用腳本自動構(gòu)建和測試你的項(xiàng)目。

使用xcodebuild測試

xcodebuild命令行工具像Xcode IDE一樣驅(qū)動測試局骤。運(yùn)行xcodebuild攀圈,使用destination參數(shù)指定不同的目標(biāo)。例如峦甩,為了測試本地OS X的MyApp赘来,使用這個(gè)命令指定目標(biāo)。

<pre><code>

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

</pre></code>

如果你連接了開發(fā)功能可用的設(shè)備穴店,你可以通過名字或id調(diào)用撕捍。例如你有一個(gè)名為“開發(fā)iPod touch”的ipod touch連接設(shè)備,你可以使用下面的命令測試你的代碼:

<pre><code>

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

可以在模擬器上運(yùn)行測試泣洞。使用模擬器以針對不同因素忧风,操作系統(tǒng)和系統(tǒng)版本。模擬器的目標(biāo)可以指定名稱或id球凰。例如:

<pre><code>

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

destination參數(shù)可以連接在一起狮腿,一個(gè)命令在指定共享配置目標(biāo)上執(zhí)行測試。例如呕诉,下面的命令鏈將前面三個(gè)例子結(jié)合在一起變成一個(gè)命令:

<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返回非零退出代碼。

關(guān)于命令行運(yùn)行測試甩挫,你需要知道一些基本要素贴硫。關(guān)于xcodebuild的詳細(xì)信息,在終端應(yīng)用窗口使用man
<pre><code>

man xcodebuild
</pre></code>

使用xcodebuild的ssh

從ssh遠(yuǎn)程登錄(或啟動守護(hù)進(jìn)程)調(diào)用xcodebuild會失敗伊者,除非主機(jī)上創(chuàng)建正確會話環(huán)境英遭。

當(dāng)你作為用戶登陸到你的OS X系統(tǒng)時(shí)會創(chuàng)建“Aqua會話”環(huán)境。Aqua會話初始化OS X交互環(huán)境亦渗,為了可以運(yùn)行OS X應(yīng)用挖诸,這些是必需的。更具體來說法精,使用UI框架(APPKit或UIKit)代碼需要運(yùn)行Aqua會話多律。因?yàn)檫@個(gè)要求,在OS X上測試(或測試模擬器或OS X 應(yīng)用)需要Aqua會話搂蜓。

默認(rèn)情況下狼荞,當(dāng)你使用ssh登陸沒有運(yùn)行用戶會話的OS X系統(tǒng),會創(chuàng)建命令行會話帮碰。為了確保ssh登陸時(shí)創(chuàng)建了Aqua會話相味,你必須有用戶登陸到遠(yuǎn)程OS X主機(jī)系統(tǒng)。遠(yuǎn)程系統(tǒng)上有運(yùn)行的用戶時(shí)收毫,會強(qiáng)制ssh登陸創(chuàng)建Aqua會話攻走。

一旦有一個(gè)用戶在主機(jī)系統(tǒng)上運(yùn)行殷勘,從ssh登陸為所有類型測試運(yùn)行xcodebuild。例如昔搂,下面終端應(yīng)用命令運(yùn)行測試開發(fā)系統(tǒng)上的“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玲销,啟動守護(hù)進(jìn)程和啟動代理,以及他們?nèi)绾闻c系統(tǒng)交互摘符,參見技術(shù)說明文檔守護(hù)進(jìn)程和代理及守護(hù)進(jìn)程和服務(wù)變成指南(Daemons and Agents and Daemons and Services Programming Guide)贤斜。

使用Xcode服務(wù)器并持續(xù)集成

通過Xcode服務(wù)器,Xode支持完全集成基于服務(wù)器持續(xù)集成工作流逛裤。Xcode服務(wù)器可用于OS X 服務(wù)器瘩绒,自動構(gòu)建、分析带族、測試和歸檔app锁荔。Xcode服務(wù)器和持續(xù)集成工作流對于交互式開發(fā)工作是無縫和透明的。

學(xué)習(xí)所有關(guān)于設(shè)置并使用Xcode服務(wù)器蝙砌,參見Xcode服務(wù)器并持續(xù)集成指南( 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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市择克,隨后出現(xiàn)的幾起案子恬总,更是在濱河造成了極大的恐慌,老刑警劉巖肚邢,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壹堰,死亡現(xiàn)場離奇詭異,居然都是意外死亡骡湖,警方通過查閱死者的電腦和手機(jī)贱纠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勺鸦,“玉大人并巍,你說我怎么就攤上這事目木』煌荆” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵刽射,是天一觀的道長军拟。 經(jīng)常有香客問我,道長誓禁,這世上最難降的妖魔是什么懈息? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮摹恰,結(jié)果婚禮上辫继,老公的妹妹穿的比我還像新娘怒见。我一直安慰自己,他們只是感情好姑宽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布遣耍。 她就那樣靜靜地躺著,像睡著了一般炮车。 火紅的嫁衣襯著肌膚如雪舵变。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天瘦穆,我揣著相機(jī)與錄音纪隙,去河邊找鬼。 笑死扛或,一個(gè)胖子當(dāng)著我的面吹牛绵咱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播熙兔,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼麸拄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了黔姜?” 一聲冷哼從身側(cè)響起拢切,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秆吵,沒想到半個(gè)月后淮椰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纳寂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年主穗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毙芜。...
    茶點(diǎn)故事閱讀 39,764評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忽媒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出腋粥,到底是詐尸還是另有隱情晦雨,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布隘冲,位于F島的核電站闹瞧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏展辞。R本人自食惡果不足惜奥邮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧洽腺,春花似錦脚粟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至度液,卻和暖如春厕宗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背堕担。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工已慢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人霹购。 一個(gè)月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓佑惠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親齐疙。 傳聞我的和親對象是個(gè)殘疾皇子膜楷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容