翻譯:使用Xcode測(cè)試(六)——代碼覆蓋率(Code Coverage)

代碼覆蓋率是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ò)誤按照你的方式處理。

官方原文地址:

https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/07-code_coverage.html#//apple_ref/doc/uid/TP40014132-CH15-SW1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容