運(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)行按鈕乔宿。
要運(yùn)行類中的所有測試,將指針保存在類名稱上访雪,然后單擊右側(cè)顯示的“運(yùn)行”按鈕详瑞。
要運(yùn)行單個(gè)測試,請將指針保持在測試名稱上臣缀,然后單擊右側(cè)顯示的“運(yù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)試信息履怯。
在報(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ì)信息。
注意: 除了項(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)在那里莽鸿。
使用方案和測試目標(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í)行的測試爸业。
注意: 與測試目標(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伴郁,是可用的選擇耿战。
選擇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)程腹。
您可以檢查構(gòu)建設(shè)置對SampleCalcTests目標(biāo)是否正確。
2.單擊構(gòu)建設(shè)置儒拂,然后鍵入Bundle Loader搜索字段寸潦。應(yīng)用程序SampleCalc加載的應(yīng)用測試SampleCalc。您將看到可執(zhí)行文件的路徑作為Debug和Release版本的自定義參數(shù)社痛。如果您搜索Test Host见转,將顯示相同的路徑,如圖所示蒜哀。
此項(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)值配置它們,這是正確的配置房匆。