OC代碼覆蓋率測試方案——XcodeCoverage

搜狗測試2019-07-09 19:57:00

前言:

隨着項目迭代速度的逐漸加快,小編本人開始感覺到項目測試時間已經成為很難爭取到的資源,因此在有限的時間內提升測試質量就成為了目前的一個重要目標,於是小編找到了XcodeCoverage這個查看代碼覆蓋度的工具,藉助此工具我們可以更快的設計出覆蓋度更全的測試用例,並且確保其不宂餘。接下來將介紹一下該工具的基本信息和使用方法。


簡介:

XcodeCoverage是一個基於lcov的統計工具,用於計算Xcode項目的單元測試覆蓋率,且能生成html格式的統計報表。XcodeCoverage是通過gcc編譯的時候加入gcov統計代碼覆蓋率,Gcov可以執行函數覆蓋、語句覆蓋和分支覆蓋。同樣的,我們也可以按照這種思路來實現手工測試的代碼覆蓋率統計。


步驟:

首先,我們需要下載XcodeCoverage到被測試工程根目錄,這裏有兩種方法可供選擇

1. 通過Git直接下載:

    https://github.com/jonreid/XcodeCoverage

2. 利用Pods進行配置

這裏小編使用的是第二種方法,配置如下:

1. 確保電腦已經安裝了CocoaPods,沒有安裝可以自行搜索方法

2. 在Podfile文件裏面添加第三方庫

    pod'XcodeCoverage','~>1.0'

3. 在根目錄下運行 pod install 將必要的庫下載到本地

4.在自己的工程中Run Script中配置運行腳本

  Pods/XcodeCoverage/exportenv.sh


其次,我們需要對打包進行配置,此時,為了不影響別的打包模式,我們就在Build設置中添加一個模式區別於Debug和Release,這裏操作如下

1. 新建一個Build Configurations


2. 需要設置build setting中的Apple LLVM,設置project在Coverage的scheme下的Code Generate中該scheme為Yes,Instrument Program Flow中該scheme為Yes


3. 設置scheme,將運行的scheme設置為剛才添加的configuration gcov


4. 我們還需要在工程中配置觸發方法,可以在AppDelegate中添加代碼__gcov_flush(),這樣當按Home鍵退出的時候測試覆蓋率數據會寫到統計文件中


最後,我們啟動運行xcode中的工程,並在模擬器中對app進行測試。在測試完成後點擊Home鍵結束。此時統計數據已經生成,查看統計報告可以在工程的XcodeCoverage目錄下執行 ./getcov -s 即可生成本文最上方的測試覆蓋率統計報告了。




總結:

使用上述方法,我們就可以在app運行過程中對代碼覆蓋率進行分析,幫助我們更好的設計覆蓋度高且不出現重複的case,有效的控制了測試質量。但是目前該方法只適用於模擬器中測試的數據統計,後續將考慮在真機的測試中實際應用。







搜狗測試微信號:Qa_xiaoming

搜狗測試QQ粉絲羣:459645679




https://hk.wxwenku.com/d/201106199