Code Coverage是Xcode 7 的一項新功能,能夠使你量化多少代碼被測試用例執(zhí)行。根據(jù)代碼覆蓋,你可以決定測試用例是否是你關(guān)注的。
啟用代碼覆蓋
在Xcode的Code coverage是LLVM支持的測試選項。當你啟動Code coverage,LLVM工具的代碼去收集基于該方法和功能被調(diào)用的覆蓋數(shù)據(jù)。code coverage選項可以收集數(shù)據(jù),以報告測試的性能和正確性,無論是單元測試還是UI測試
你可以通過編輯scheme的測試行為來啟動代碼覆蓋
-
從Scheme編輯菜單中現(xiàn)在編輯 Scheme
選擇Scheme - 選擇Test action
-
啟用 Code Coverage復(fù)選框來收集覆蓋數(shù)據(jù)。
啟用Code Coverage - 點擊Close
How Code Coverage Fits into Testing
代碼覆蓋率是衡量你測試量的一個工具。它解決了一下問題
- 當運行你的測試用例時那些代碼在執(zhí)行
- 你的測試用例是否足夠
換句話說,你有沒有足夠的測試用例來檢查你的所有的代碼正確性和性能。 -
沒有測試到那些部分的代碼
當運行完測試用例,Xcode取得LLVM的覆蓋數(shù)據(jù)并且用它生成覆蓋報告,顯示在覆蓋窗口中。其中顯示了測試運行的源文件和功能的列表,并提供了每一個的代碼覆蓋率。
代碼覆蓋率結(jié)果
源碼編輯器顯示了文件中的每一行代碼,并高亮顯示了未被執(zhí)行的代碼。它強調(diào)需要覆蓋的區(qū)域而不是已經(jīng)覆蓋的區(qū)域。例如,移動鼠標到-[Calculator input:]方法在代碼覆蓋率報告上顯示的按鈕,會帶你到注釋的源代碼。

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

input:方法, 調(diào)用計數(shù),在測試時頻繁的被調(diào)用,然而,也有哪些沒有被調(diào)用的方法。這清楚的被標記在源碼編輯器中,如下:

這個報告的數(shù)據(jù)和顯示給你一個機會去先一個測試用例,包括意外或無效字符,以確保錯誤的初始方式是你預(yù)料的。