Code Coverage是Xcode 7 的一項(xiàng)新功能筹燕,能夠使你量化多少代碼被測(cè)試用例執(zhí)行意推。根據(jù)代碼覆蓋场绿,你可以決定測(cè)試用例是否是你關(guān)注的聂儒。
啟用代碼覆蓋
在Xcode的Code coverage是LLVM支持的測(cè)試選項(xiàng)扩所。當(dāng)你啟動(dòng)Code coverage围详,LLVM工具的代碼去收集基于該方法和功能被調(diào)用的覆蓋數(shù)據(jù)。code coverage選項(xiàng)可以收集數(shù)據(jù),以報(bào)告測(cè)試的性能和正確性助赞,無(wú)論是單元測(cè)試還是UI測(cè)試
你可以通過(guò)編輯scheme的測(cè)試行為來(lái)啟動(dòng)代碼覆蓋
-
從Scheme編輯菜單中現(xiàn)在編輯 Scheme
選擇Scheme - 選擇Test action
-
啟用 Code Coverage復(fù)選框來(lái)收集覆蓋數(shù)據(jù)买羞。
啟用Code Coverage - 點(diǎn)擊Close
How Code Coverage Fits into Testing
代碼覆蓋率是衡量你測(cè)試量的一個(gè)工具。它解決了一下問(wèn)題
- 當(dāng)運(yùn)行你的測(cè)試用例時(shí)那些代碼在執(zhí)行
- 你的測(cè)試用例是否足夠
換句話說(shuō)雹食,你有沒(méi)有足夠的測(cè)試用例來(lái)檢查你的所有的代碼正確性和性能畜普。 -
沒(méi)有測(cè)試到那些部分的代碼
當(dāng)運(yùn)行完測(cè)試用例,Xcode取得LLVM的覆蓋數(shù)據(jù)并且用它生成覆蓋報(bào)告群叶,顯示在覆蓋窗口中吃挑。其中顯示了測(cè)試運(yùn)行的源文件和功能的列表,并提供了每一個(gè)的代碼覆蓋率街立。
代碼覆蓋率結(jié)果
源碼編輯器顯示了文件中的每一行代碼舶衬,并高亮顯示了未被執(zhí)行的代碼。它強(qiáng)調(diào)需要覆蓋的區(qū)域而不是已經(jīng)覆蓋的區(qū)域赎离。例如逛犹,移動(dòng)鼠標(biāo)到-[Calculator input:]方法在代碼覆蓋率報(bào)告上顯示的按鈕,會(huì)帶你到注釋的源代碼蟹瘾。

代碼覆蓋率的注釋顯示在左側(cè)圾浅,并且顯示了在執(zhí)行測(cè)試期間被執(zhí)行的次數(shù)。 例如:

input:方法, 調(diào)用計(jì)數(shù)憾朴,在測(cè)試時(shí)頻繁的被調(diào)用狸捕,然而,也有哪些沒(méi)有被調(diào)用的方法众雷。這清楚的被標(biāo)記在源碼編輯器中灸拍,如下:

這個(gè)報(bào)告的數(shù)據(jù)和顯示給你一個(gè)機(jī)會(huì)去先一個(gè)測(cè)試用例,包括意外或無(wú)效字符砾省,以確保錯(cuò)誤的初始方式是你預(yù)料的鸡岗。