XCTest-8-自動(dòng)化測(cè)試過程

除了在開發(fā)期間交互運(yùn)行測(cè)試外变汪,還可以利用使用服務(wù)器自動(dòng)運(yùn)行測(cè)試仪吧。

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

Xcode測(cè)試功能啊送,以交互方式使用吟宦,確保您的代碼相對(duì)于其指定的要求保持正常篮洁,并確保開發(fā)的錯(cuò)誤很容易找到和修復(fù)。一套快速運(yùn)行的功能測(cè)試證明你的工作殃姓,你要做什么袁波,并確保堅(jiān)實(shí)的應(yīng)用基礎(chǔ),你可以建立在高效和自信蜗侈。

也就是說篷牌,成功的開發(fā)項(xiàng)目往往超越單一開發(fā)人員實(shí)施和維護(hù)的范圍。像源代碼管理一樣踏幻,服務(wù)器上的自動(dòng)測(cè)試通過允許您的開發(fā)工作順利枷颊,高效地?cái)U(kuò)展到團(tuán)隊(duì)的需求來提供好處。

以下是使用基于服務(wù)器的測(cè)試的一些好處:

1.使用服務(wù)器進(jìn)行脫機(jī)構(gòu)建和測(cè)試该面,可以使您的開發(fā)系統(tǒng)無需執(zhí)行和調(diào)試夭苗,特別是在整套測(cè)試需要很長時(shí)間運(yùn)行的情況下。

2.開發(fā)團(tuán)隊(duì)的所有成員通過使用相同的方案在服務(wù)器上運(yùn)行相同的測(cè)試隔缀,從而提高測(cè)試一致性题造。服務(wù)器還使構(gòu)建產(chǎn)品可用于整個(gè)團(tuán)隊(duì),就像構(gòu)建和測(cè)試報(bào)告一樣猾瘸。

3.您可以根據(jù)項(xiàng)目需求和團(tuán)隊(duì)需求調(diào)整計(jì)劃界赔。例如丢习,測(cè)試運(yùn)行可以在團(tuán)隊(duì)的任何成員向源管理系統(tǒng)提交新工作或在設(shè)置的時(shí)間定期執(zhí)行時(shí)開始。也可以在需要時(shí)手動(dòng)啟動(dòng)測(cè)試運(yùn)行淮悼。

4.服務(wù)器每次運(yùn)行測(cè)試時(shí)間咐低,以完全相同的方式。服務(wù)器的報(bào)告功能可以幫助您和您的團(tuán)隊(duì)隨時(shí)了解構(gòu)建問題袜腥,構(gòu)建警告和測(cè)試解決方案的圖片见擦。

5.您的項(xiàng)目可以自動(dòng)地以更經(jīng)濟(jì)的方式在更多的目的地上測(cè)試,而不是手動(dòng)運(yùn)行的測(cè)試系統(tǒng)羹令。例如锡宋,您可以將任意數(shù)量的iOS設(shè)備連接到服務(wù)器,并且使用單個(gè)配置特恬,系統(tǒng)可以在所有這些設(shè)備以及多個(gè)版本的Simulator中構(gòu)建和測(cè)試庫,應(yīng)用程序和測(cè)試徐钠。

命令行測(cè)試

使用Xcode命令行工具癌刽,您可以對(duì)項(xiàng)目的構(gòu)建和測(cè)試進(jìn)行腳本化和自動(dòng)化。使用此功能可利用現(xiàn)有的構(gòu)建自動(dòng)化系統(tǒng)尝丐。

使用xcodebuild運(yùn)行測(cè)試

該xcodebuild命令行工具驅(qū)動(dòng)測(cè)試显拜,就像Xcode的IDE。使用xcodebuild操作運(yùn)行test并使用-destination參數(shù)指定不同的目標(biāo)爹袁。例如远荠,要在本地macOS“My Mac 64 Bit”上測(cè)試MyApp,請(qǐng)使用此命令指定目標(biāo)和體系結(jié)構(gòu):

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

如果您已插入支持開發(fā)的設(shè)備譬淳,則可以按名稱或ID調(diào)用它們。例如盹兢,如果您連接了名為“開發(fā)iPod touch”的iPod touch邻梆,并且要測(cè)試您的代碼,請(qǐng)使用以下命令:

> xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination'platform = iOS绎秒,name = Development iPod touch'

測(cè)試也可以在模擬器中運(yùn)行浦妄。使用模擬器輕松地定位不同的外形規(guī)格,操作系統(tǒng)和操作系統(tǒng)版本见芹。模擬器目標(biāo)可以通過名稱或ID指定剂娄。例如:
> xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination'platform = Simulator,name = iPhone玄呛,OS = 8.1'

該-destination參數(shù)可以鏈接在一起阅懦,讓你只發(fā)出一個(gè)命令跨越的目標(biāo)執(zhí)行整合為指定的共享方案。例如把鉴,以下命令將前三個(gè)示例鏈接到一個(gè)命令中:

> xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp
-destination'platform = OS X故黑,arch = x86_64'
-destination'platform = iOS儿咱,name =開發(fā)iPod touch'
-destination'platform = Simulator,name = iPhone场晶,OS = 9.0'

如果任何測(cè)試失敗混埠,xcodebuild則返回非零退出代碼。

有關(guān)更多信息诗轻,請(qǐng)參閱如何在命令行中在OS X和iOS中運(yùn)行單元測(cè)試钳宪?從Xcode中常見問題的命令行構(gòu)建。您還可以使用以下xcodebuild命令獲取該命令的完整使用信息:

> man xcodebuild

使用ssh與xcodebuild

xcodebuild使用ssh(或從啟動(dòng)守護(hù)程序)從遠(yuǎn)程登錄調(diào)用失敗扳炬,除非在主機(jī)上創(chuàng)建正確的會(huì)話環(huán)境吏颖。

當(dāng)您以用戶身份以交互方式登錄到MacOS系統(tǒng)時(shí),將創(chuàng)建“Aqua會(huì)話”環(huán)境恨樟。Aqua會(huì)話初始化macOS交互式環(huán)境的基礎(chǔ)設(shè)施; 它們是必需的半醉,以便能夠運(yùn)行macOS應(yīng)用程序。更具體地說劝术,使用UI框架(AppKit或UIKit)的代碼需要在Aqua會(huì)話中運(yùn)行缩多。由于這個(gè)要求,在MacOS上進(jìn)行測(cè)試(以及在模擬器上進(jìn)行測(cè)試养晋,本身就是一個(gè)macOS應(yīng)用程序)需要一個(gè)Aqua會(huì)話衬吆。

默認(rèn)情況下,當(dāng)您使用ssh登錄到?jīng)]有活動(dòng)用戶會(huì)話運(yùn)行的macOS系統(tǒng)時(shí)绳泉,將創(chuàng)建命令行會(huì)話逊抡。要確保為ssh登錄創(chuàng)建Aqua會(huì)話,您必須有一個(gè)用戶在遠(yuǎn)程MacOS主機(jī)系統(tǒng)上登錄零酪。在遠(yuǎn)程系統(tǒng)上運(yùn)行的用戶的存在會(huì)強(qiáng)制Aqua會(huì)話進(jìn)行ssh登錄冒嫡。

一旦用戶在主機(jī)系統(tǒng)上運(yùn)行,xcodebuild從ssh登錄運(yùn)行適用于所有類型的測(cè)試四苇。例如灯谣,以下Terminal應(yīng)用程序命令運(yùn)行在開發(fā)系統(tǒng)主機(jī)上為“MyApp”定義的測(cè)試ssh:

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

對(duì)于需要更深入了解ssh蛔琅,啟動(dòng)惡魔和啟動(dòng)代理以及它們?nèi)绾闻c系統(tǒng)交互的用戶胎许,請(qǐng)參閱技術(shù)說明“ 守護(hù)程序和代理守護(hù)程序和服務(wù)編程指南”

使用Xcode Server和連續(xù)集成

Xcode通過Xcode Server支持完全集成的基于服務(wù)器的持續(xù)集成工作流程罗售。MacOS Server中提供的Xcode Server可自動(dòng)化構(gòu)建辜窑,分析,測(cè)試和歸檔應(yīng)用程序的集成過程寨躁。使用Xcode Server和持續(xù)集成工作流程被設(shè)計(jì)為對(duì)您的交互式開發(fā)工作無縫和透明穆碎。

要了解有關(guān)設(shè)置和使用Xcode Server的所有信息,請(qǐng)參閱Xcode Server和Continuous Integration Guide职恳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末所禀,一起剝皮案震驚了整個(gè)濱河市方面,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌色徘,老刑警劉巖恭金,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異褂策,居然都是意外死亡横腿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門斤寂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耿焊,“玉大人,你說我怎么就攤上這事遍搞÷藓睿” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵溪猿,是天一觀的道長歇父。 經(jīng)常有香客問我,道長再愈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任护戳,我火速辦了婚禮翎冲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘媳荒。我一直安慰自己抗悍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布钳枕。 她就那樣靜靜地躺著缴渊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鱼炒。 梳的紋絲不亂的頭發(fā)上衔沼,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音昔瞧,去河邊找鬼指蚁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛自晰,可吹牛的內(nèi)容都是我干的凝化。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酬荞,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼搓劫!你這毒婦竟也來了瞧哟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤枪向,失蹤者是張志新(化名)和其女友劉穎勤揩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遣疯,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雄可,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缠犀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片数苫。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖辨液,靈堂內(nèi)的尸體忽然破棺而出虐急,到底是詐尸還是另有隱情,我是刑警寧澤滔迈,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布止吁,位于F島的核電站,受9級(jí)特大地震影響燎悍,放射性物質(zhì)發(fā)生泄漏敬惦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一谈山、第九天 我趴在偏房一處隱蔽的房頂上張望俄删。 院中可真熱鬧,春花似錦奏路、人聲如沸畴椰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斜脂。三九已至,卻和暖如春触机,著一層夾襖步出監(jiān)牢的瞬間帚戳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工儡首, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留销斟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓椒舵,卻偏偏與公主長得像蚂踊,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子笔宿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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