代碼覆蓋率是Xcode7的功能,可以在視覺(jué)上看到和衡量你的代碼測(cè)試覆蓋率。有了代碼覆蓋率,你可以確定測(cè)試是否符合你的預(yù)期。
啟用代碼覆蓋率
Xcode的代碼覆蓋率由LLVM支持的測(cè)試操作。當(dāng)你啟用代碼覆蓋率,LLVM基于方法和函數(shù)調(diào)用的頻率來(lái)收集覆蓋數(shù)據(jù)。代碼覆蓋率選項(xiàng)可以收集單元測(cè)試和UI測(cè)試正確性和性能數(shù)據(jù),
編輯scheme的測(cè)試操作可以啟用代碼覆蓋率。
1.在scheme編輯菜單中選擇Edit Scheme。

2.選擇測(cè)試操作。
3.勾選代碼覆蓋率復(fù)選框收集覆蓋率數(shù)據(jù)。

4.點(diǎn)擊關(guān)閉。
注意:收集代碼覆蓋率數(shù)據(jù)會(huì)導(dǎo)致性能損耗。無(wú)論損耗是否顯著,它均會(huì)影響執(zhí)行代碼的線(xiàn)性方式,因此在測(cè)試運(yùn)行中啟用代碼覆蓋率,性能結(jié)果依然具有可比性。然而,當(dāng)你正在認(rèn)真評(píng)估測(cè)試程序性能時(shí),你應(yīng)該考慮是否啟用代碼覆蓋率。
代碼覆蓋率如何符合測(cè)試
代碼覆蓋率是用來(lái)衡量測(cè)試價(jià)值的工具。它回答了以下問(wèn)題
- 當(dāng)你運(yùn)行測(cè)試時(shí),什么代碼真正運(yùn)行?
- 多少測(cè)試才算足夠?
- 換句話(huà)說(shuō),你是否設(shè)計(jì)足夠的測(cè)試確保你所有的代碼都檢查了正確性和性能?
- 代碼的哪部分沒(méi)有被測(cè)試?
在測(cè)試運(yùn)行完成后,Xcode采用LLVM覆蓋數(shù)據(jù)并在報(bào)告導(dǎo)航中創(chuàng)建覆蓋率報(bào)告,參見(jiàn)覆蓋率面板。它顯示了測(cè)試的摘要信息,源文件和源文件中的方法列表以及每個(gè)文件中的覆蓋百分比。

源代碼編輯器展示了文件中代碼的行數(shù)并高亮未執(zhí)行的代碼。它高亮需要覆蓋的代碼區(qū)域而非已經(jīng)覆蓋的區(qū)域。
例如,將指針?lè)旁?-[Calculator input:] 方法上,將顯示一個(gè)按鈕,將你導(dǎo)航到源代碼。

覆蓋注釋在右邊顯示,顯示了在測(cè)試中代碼某個(gè)特定部分被執(zhí)行的次數(shù)。例如:

input: 方法,在測(cè)試中被頻繁調(diào)用。然而,有部分方法并未被調(diào)用。在源代碼編輯器中有明顯的標(biāo)記,如圖:

報(bào)告數(shù)據(jù)和顯示建議編寫(xiě)一個(gè)測(cè)試,包括意外或無(wú)效的字符確保錯(cuò)誤按照你的方式處理。