XCTest-5-運(yùn)行測試和查看結(jié)果

運(yùn)行測試和查看結(jié)果很容易使用Xcode測試導(dǎo)航器友鼻,就像您在快速入門中看到的。有幾種額外的交互方式來運(yùn)行測試婴氮。Xcode根據(jù)在方案中包含和啟用的測試目標(biāo)運(yùn)行測試竿裂。測試導(dǎo)航器允許您直接控制在方案中包括,啟用或禁用哪些測試目標(biāo)剿涮,類和方法啸胧,而無需使用方案編輯器赶站。

運(yùn)行測試的命令

測試導(dǎo)航器為您提供了一種簡單的方法來運(yùn)行測試,作為編程工作流程的一部分纺念。測試也可以直接從源代碼編輯器或使用產(chǎn)品菜單運(yùn)行贝椿。

使用測試導(dǎo)航器

當(dāng)您將指針放在測試導(dǎo)航器中的包,類或方法名稱上時(shí)陷谱,會(huì)出現(xiàn)運(yùn)行按鈕烙博。您可以根據(jù)在測試導(dǎo)航器列表中保存指針的位置,運(yùn)行一個(gè)測試烟逊,類中的所有測試或捆綁中的所有測試渣窜。

要運(yùn)行捆綁包中的所有測試,請將指針保持在測試包名稱上宪躯,然后單擊右側(cè)顯示的運(yùn)行按鈕乔宿。

點(diǎn)擊上面的那個(gè)按鈕

要運(yùn)行類中的所有測試,將指針保存在類名稱上访雪,然后單擊右側(cè)顯示的“運(yùn)行”按鈕详瑞。

在類名右側(cè)點(diǎn)擊按鈕

要運(yùn)行單個(gè)測試,請將指針保持在測試名稱上臣缀,然后單擊右側(cè)顯示的“運(yùn)行”按鈕坝橡。

單個(gè)測試就把鼠標(biāo)放在單個(gè)方法的右邊,點(diǎn)擊按鈕

使用源代碼編輯器

當(dāng)您在源代碼編輯器中打開一個(gè)測試類時(shí)精置,每個(gè)測試方法名稱旁邊的消息框中會(huì)顯示一個(gè)清晰的指示符计寇。將指針保持在指示器上顯示運(yùn)行按鈕。單擊運(yùn)行按鈕運(yùn)行測試方法脂倦,然后指示器將顯示測試的通過或失敗狀態(tài)番宁。將指針保持在指示器上將再次顯示運(yùn)行按鈕以重復(fù)測試。這種機(jī)制一次只運(yùn)行一個(gè)測試赖阻。

示意圖

注意: 同樣的指示器也出現(xiàn)@implementation在類的旁邊贝淤,允許您運(yùn)行類中的所有測試。

使用產(chǎn)品菜單

產(chǎn)品菜單包括可以直接從鍵盤運(yùn)行測試的快速訪問命令政供。

產(chǎn)品>測試播聪。運(yùn)行當(dāng)前活動(dòng)方案。鍵盤快捷方式是Command-U布隔。
產(chǎn)品>構(gòu)建>測試和產(chǎn)品>執(zhí)行操作>無需構(gòu)建的測試离陶。這兩個(gè)命令可用于構(gòu)建測試包產(chǎn)品,并獨(dú)立于彼此運(yùn)行測試衅檀。這些是方便的命令來快速構(gòu)建和測試過程招刨。當(dāng)更改代碼以檢查構(gòu)建過程中的警告和錯(cuò)誤時(shí),以及當(dāng)您知道構(gòu)建是最新的時(shí)哀军,可以加快測試速度沉眶。鍵盤快捷鍵分別是Shift-Command-U和Control-Command-U打却。
產(chǎn)品>執(zhí)行操作>測試<testName>。當(dāng)您編輯測試方法并允許使用鍵盤快捷方式運(yùn)行該測試時(shí)谎倔,此動(dòng)態(tài)菜單項(xiàng)感測編輯插入點(diǎn)所在的當(dāng)前測試方法柳击。命令的名稱適合顯示它將運(yùn)行的測試,例如片习,產(chǎn)品>執(zhí)行操作>測試testAddition捌肴。鍵盤快捷鍵是Control-Option-Command-U。

注意: 除了源編輯器之外藕咏,此命令還基于項(xiàng)目導(dǎo)航器和測試導(dǎo)航器中的選擇進(jìn)行操作状知。當(dāng)這兩個(gè)導(dǎo)航器中的任一個(gè)活動(dòng)時(shí),源編輯器不具有焦點(diǎn)孽查,并且該命令在這些導(dǎo)航器中的任一個(gè)中采用當(dāng)前選擇用于輸入饥悴。在測試導(dǎo)航器中,選擇可以是測試包盲再,類或方法西设。在項(xiàng)目導(dǎo)航器中,選擇可以在測試類實(shí)現(xiàn)文件上洲胖,例如CalcTests.m济榨。

產(chǎn)品>執(zhí)行操作>再次測試<testName>坯沪。重新運(yùn)行最后執(zhí)行的測試方法绿映,在調(diào)試/編輯代碼時(shí)最有用,其中測試方法暴露了問題腐晾。與產(chǎn)品>執(zhí)行操作>測試命令類似叉弦,命令中顯示運(yùn)行的測試的名稱,例如藻糖,產(chǎn)品>執(zhí)行操作>再次測試testAddition淹冰。鍵盤快捷鍵是Control-Option-Command-G。

顯示測試結(jié)果

XCTest框架以多種方式向Xcode顯示測試方法的通過或失敗結(jié)果巨柒。以下屏幕截圖顯示了您可以在哪里查看結(jié)果樱拴。

在測試導(dǎo)航器中,可以在運(yùn)行測試或測試組后查看通過/失敗指示器洋满。

紅色的?代表測試失敗了晶乔,綠色的是測試通過

如果測試方法折疊到它們各自的類中,或者將測試類折疊到測試包中牺勾,則指示符反映所包含的測試的總體狀態(tài)正罢。在此示例中,類中的至少一個(gè)測試BasicFunctionsTests已發(fā)出故障信號驻民。

示意圖

在源代碼編輯器中翻具,您可以查看通過/失敗指示符和調(diào)試信息履怯。

失敗的調(diào)試信息

在報(bào)告導(dǎo)航器中,您可以查看通過測試運(yùn)行輸出的結(jié)果裆泳。激活“測試”面板后叹洲,在左側(cè)面板中選擇要檢查的測試運(yùn)行。晾虑。

示意圖

對于性能測試疹味,單擊“時(shí)間”列中的值以獲取有關(guān)性能結(jié)果的詳細(xì)報(bào)告。您可以通過單擊單個(gè)測試運(yùn)行按鈕來查看測試的總體性能以及每個(gè)運(yùn)行的值帜篇。使用“編輯”按鈕可以設(shè)置或修改測試基線和通過或失敗指示中允許的最大標(biāo)準(zhǔn)偏差糙捺。

性能測試

使用“日志”面板,可以查看關(guān)聯(lián)的故障描述字符串和其他摘要輸出笙隙。通過打開公開三角形洪灯,可以向下獲取測試運(yùn)行的所有詳細(xì)信息。

測試結(jié)果的詳細(xì)信息

注意: 除了項(xiàng)目條目左側(cè)的公開三角形之外竟痰,測試失敗項(xiàng)目右側(cè)的小圖標(biāo)可以展開以顯示更多信息签钩,如testMultiplication上面顯示的故障中所示。

調(diào)試控制臺以文本格式顯示有關(guān)測試運(yùn)行的全面信息坏快。它與日志導(dǎo)航器顯示的信息相同铅檩,但如果您一直積極從事調(diào)試,則調(diào)試會(huì)話的任何輸出也會(huì)出現(xiàn)在那里莽鸿。

以文本格式現(xiàn)實(shí)的有關(guān)測試運(yùn)行的全面的信息

使用方案和測試目標(biāo)

Xcode方案控制構(gòu)建昧旨,運(yùn)行,測試和調(diào)試菜單命令的功能祥得。當(dāng)您創(chuàng)建測試目標(biāo)并使用測試導(dǎo)航器執(zhí)行其他測試系統(tǒng)操作時(shí)兔沃,例如,當(dāng)您啟用或禁用測試方法级及,測試類或測試包時(shí)乒疏,Xcode會(huì)為您管理方案配置。使用Xcode Server和持續(xù)集成需要使用“管理方案”表中的復(fù)選框?qū)⒎桨冈O(shè)置為“共享”饮焦,并將其與您的項(xiàng)目和源代碼一起檢入源存儲庫怕吴。
要查看測試的方案配置:
1.在工具欄中選擇方案菜單>管理方案以顯示方案管理表。

顯示方案管理表

在這個(gè)項(xiàng)目中有兩個(gè)方案县踢,一個(gè)構(gòu)建應(yīng)用程序转绷,另一個(gè)構(gòu)建庫/框架。標(biāo)記為“共享”的復(fù)選框?qū)⒎桨概渲脼楣蚕矸桨傅钛晒C(jī)器人與Xcode Server一起使用暇咆。

2.在管理表中,雙擊方案以顯示方案編輯器。方案的測試操作標(biāo)識Xcode在執(zhí)行測試命令時(shí)執(zhí)行的測試爸业。

相關(guān)配置圖片

注意: 與測試目標(biāo)其骄,測試類和測試方法相關(guān)聯(lián)的測試導(dǎo)航器和配置/設(shè)置助手通常會(huì)為您保留有關(guān)測試操作的所有方案設(shè)置。

有關(guān)使用扯旷,配置和編輯方案的大量信息拯爽,請參見視頻演示WWDC 2012:在Xcode中使用方案和項(xiàng)目(408)

構(gòu)建設(shè)置 - 測試應(yīng)用程序钧忽,測試庫

應(yīng)用程序測試在應(yīng)用程序的上下文中運(yùn)行毯炮,允許您創(chuàng)建測試,這些測試將來自不同類耸黑,庫/框架和應(yīng)用程序的功能方面的行為組合在一起桃煎。庫測試在庫或框架中獨(dú)立于您的應(yīng)用程序執(zhí)行類和方法,以驗(yàn)證它們的行為與庫的規(guī)范要求相同大刊。

這兩種類型的測試包需要不同的構(gòu)建設(shè)置为迈。當(dāng)您通過在新目標(biāo)助理中選擇目標(biāo)參數(shù)來創(chuàng)建測試目標(biāo)時(shí),將為您配置構(gòu)建設(shè)置缺菌。目標(biāo)助手顯示為打開目標(biāo)彈出菜單葫辐。應(yīng)用程序,SampleCalc和庫/框架CalcLibrary伴郁,是可用的選擇耿战。

相關(guān)配置示意圖

選擇SampleCalc作為此測試目標(biāo)的關(guān)聯(lián)構(gòu)建產(chǎn)品將配置應(yīng)用程序測試的構(gòu)建設(shè)置。應(yīng)用程序進(jìn)程托管您的測試的執(zhí)行; 在接收到applicationDidFinishLaunching通知之后執(zhí)行測試焊傅。SampleCalc在這種情況下剂陡,測試目標(biāo)的默認(rèn)產(chǎn)品名稱“SampleCalc Tests”來自目標(biāo)名稱; 你可以改變它,以適應(yīng)你的喜好租冠。

如果您選擇CalcLibrary作為關(guān)聯(lián)的構(gòu)建產(chǎn)品鹏倘,目標(biāo)助理將配置庫測試的構(gòu)建設(shè)置薯嗤。Xcode引導(dǎo)測試運(yùn)行時(shí)上下文顽爹,庫或框架,并且測試代碼由Xcode管理的進(jìn)程托管骆姐。此案例的默認(rèn)產(chǎn)品名稱來自庫目標(biāo)(“CalcLibrary Tests”)镜粤。您可以根據(jù)您的偏好更改它,就像應(yīng)用程序測試用例一樣玻褪。

構(gòu)建設(shè)置默認(rèn)值

對于大多數(shù)情況肉渴,選擇正確的測試目標(biāo)來構(gòu)建產(chǎn)品關(guān)聯(lián)是您為配置應(yīng)用和庫測試的構(gòu)建設(shè)置所需要做的。Xcode會(huì)自動(dòng)管理你的構(gòu)建設(shè)置带射。因?yàn)槟赡苡幸粋€(gè)項(xiàng)目需要一些復(fù)雜的構(gòu)建設(shè)置同规,所以了解Xcode為應(yīng)用程序測試和庫測試設(shè)置的標(biāo)準(zhǔn)構(gòu)建設(shè)置很有用。

該SampleCalc項(xiàng)目作為示例說明正確的默認(rèn)設(shè)置。

1.通過單擊SampleCalc項(xiàng)目導(dǎo)航器中的項(xiàng)目來輸入項(xiàng)目編輯器券勺,然后選擇SampleCalcTests應(yīng)用程序測試目標(biāo)绪钥。
在編輯器的“常規(guī)”窗格中,將顯示“目標(biāo)”彈出菜單关炼。彈出菜單應(yīng)將SampleCalc應(yīng)用程序顯示為目標(biāo)程腹。

默認(rèn)設(shè)置

您可以檢查構(gòu)建設(shè)置對SampleCalcTests目標(biāo)是否正確。
2.單擊構(gòu)建設(shè)置儒拂,然后鍵入Bundle Loader搜索字段寸潦。應(yīng)用程序SampleCalc加載的應(yīng)用測試SampleCalc。您將看到可執(zhí)行文件的路徑作為Debug和Release版本的自定義參數(shù)社痛。如果您搜索Test Host见转,將顯示相同的路徑,如圖所示蒜哀。

自定義參數(shù)

此項(xiàng)目的計(jì)算器庫目標(biāo)是命名的CalcLibrary池户,并具有關(guān)聯(lián)的測試目標(biāo)命名CalcLibraryTests。

3.選擇CalcLibraryTests目標(biāo)和常規(guī)窗格凡怎。
目標(biāo)設(shè)置為None校焦。類似地Bundle Loader,Test Host在“構(gòu)建設(shè)置”面板中檢查和统倒,沒有相關(guān)聯(lián)的參數(shù)寨典。這表示Xcode已使用默認(rèn)值配置它們,這是正確的配置房匆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耸成,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子浴鸿,更是在濱河造成了極大的恐慌井氢,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岳链,死亡現(xiàn)場離奇詭異花竞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)掸哑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門约急,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苗分,你說我怎么就攤上這事厌蔽∽尜欤” “怎么了桥温?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迈倍。 經(jīng)常有香客問我,道長戴卜,這世上最難降的妖魔是什么罢猪? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮叉瘩,結(jié)果婚禮上膳帕,老公的妹妹穿的比我還像新娘。我一直安慰自己薇缅,他們只是感情好危彩,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泳桦,像睡著了一般汤徽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灸撰,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天谒府,我揣著相機(jī)與錄音,去河邊找鬼浮毯。 笑死完疫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的债蓝。 我是一名探鬼主播壳鹤,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饰迹!你這毒婦竟也來了芳誓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤啊鸭,失蹤者是張志新(化名)和其女友劉穎锹淌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赠制,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赂摆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了憎妙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片库正。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡曲楚,死狀恐怖厘唾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情龙誊,我是刑警寧澤抚垃,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響鹤树,放射性物質(zhì)發(fā)生泄漏铣焊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一罕伯、第九天 我趴在偏房一處隱蔽的房頂上張望曲伊。 院中可真熱鬧,春花似錦追他、人聲如沸坟募。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懈糯。三九已至,卻和暖如春单雾,著一層夾襖步出監(jiān)牢的瞬間赚哗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工硅堆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屿储,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓渐逃,卻偏偏與公主長得像扩所,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子朴乖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

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

  • 轉(zhuǎn):http://www.reibang.com/p/d5fca0185e83 Xcode測試 前言 總算在今天把...
    測試小螞蟻閱讀 2,862評論 0 20
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫祖屏、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,064評論 4 62
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理买羞,服務(wù)發(fā)現(xiàn)袁勺,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 想起我們部門兩位同事離職畜普,其原因是在事業(yè)部大家庭里面沒有學(xué)到多少東西期丰,因此,今日主要談我們一路走來的收獲吃挑,下...
    阿毅閱讀 348評論 0 1
  • Markdown是一種輕量級的「標(biāo)記語言」钝荡,它的優(yōu)點(diǎn)很多,目前也被越來越多的寫作愛好者舶衬,撰稿者廣泛使用埠通。看到這里請...
    beforenight閱讀 305評論 0 1