使用 Xcode 檢測程式碼覆蓋率
“程式碼覆蓋率”是軟體測試中的一種度量,用於描述工程中原始碼被測試到的比例和程度。
在做單元測試時,程式碼覆蓋率經常被拿來作為衡量測試質量好壞的指標,同時也能在一定程度上檢測出工程中的冗餘程式碼。
Xcode 7 以後自帶了程式碼覆蓋率檢測工具,並在 Xcode 9.3 中重寫該功能,大大提升了效能和準確性。不過 Xcode 的 Code Coverage 僅適用於單元測試場景。
我們可以新建一個工程,勾選包含單元測試(Include Unit Tests),然後在 Edit Scheme -> Test -> Options -> Code Coverage 中開啟收集程式碼覆蓋率,如圖 1 所示。
接下來在每次執行完單元測試後(Command + U),可以在 Report Navigator 中檢視結果,如圖 2 所示,我們可以看到每一個類、方法在本次測試的覆蓋率,並且雙擊可以開啟檢視程式碼,哪些有被執行,哪些沒有被執行。
完整的使用可以檢視 WWDC18 Session 403: What’s New in Testing
此外,關於 iOS 程式碼覆蓋率檢測的原理和增量程式碼測試覆蓋率工具實現,可以檢視美團技術團隊的 這篇文章 。