使用XcodeCoverage統(tǒng)計單元測試覆蓋率

XcodeCoverage 是一個基于lcov的統(tǒng)計工具,用于計算Xcode項目的單元測試覆蓋率,且能生成html格式的統(tǒng)計報表。配置過程可以分為以下幾個步驟:

  1. 為工程添加XcodeCoverage代碼
  2. 更新Xcode工程Scheme
  3. 注入提取環(huán)境變量的腳本

為工程添加XcodeCoverage代碼

使用CocoaPods可以方便地添加XcodeCoverage代碼。修改Podfile并執(zhí)行pod install命令。

# Podfile

...
pod 'XcodeCoverage', '~>1.0'
...

更新Xcode工程Scheme

  1. Configurations下新增一個配置項,一般可以通過Duplicate "Debug" Configuration得到,并改名為Coverage。

  2. 設(shè)置Project -> Build Settings -> Instrument Program FlowYES

  3. 設(shè)置Project -> Build Settings -> Generate Coverage Test FilesYES

更新Pods的xcconfig文件

復(fù)制一份Pods的xcconfig文件。例如我的工程名為MttHD,則需要復(fù)制一份Pods-MttHD.debug.xcconfig,更名為Pods-MttHD.coverage.xcconfig,并引入工程。

注入提取環(huán)境變量的腳本

Build Phases中新增一個New Run Script Phase,添加下面的腳本:

if [ "${CONFIGURATION}" == "Coverage" ]
then
    Pods/XcodeCoverage/exportenv.sh
else
    echo "ignore coverage"
fi

運行XcodeCoverage

如果是第一次運行,首先要clean一下工作目錄,Product -> Clean
接下來執(zhí)行任意一個單元測試,然后執(zhí)行命令bash ./Pods/XcodeCoverage/run_code_coverage_post.sh。

Tips

  • 計算覆蓋率的過程,需要在build過程中生成一些額外的文件,在開發(fā)調(diào)試的時候用不到,所以新增一個Scheme,以免降低Debug的build效率。
  • 通過注入提取環(huán)境變量的腳本,我們可以獲取build過程中所有的環(huán)境變量。環(huán)境變量的列表可以查看以往的build log。
  • 第一次運行之前clean工作目錄,因為在新增的Scheme目錄下工作需要生成依賴的Pod庫文件。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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