1. 程式人生 > IOS開發 >iOS 元件單元測試覆蓋率匯出工具

iOS 元件單元測試覆蓋率匯出工具

iOS單元測試框架

使用蘋果Xcode自帶的XCTest框架。這裡不做特別說明,直接在網上搜索相關文章即可。

使用cocoapods進行iOS元件開發

cocoapods的使用這裡也不做特別說明,這裡重點說明一下單元測試相關的內容。

一般元件的單元測試有兩種方式呈現

  • 寫在Example工程中,工程依賴元件程式碼即可
  • 寫在元件的子庫中

這裡說明後者。

cocoapods iOS組單元測試

  • 新增test_spec,並依賴想要測試的子庫
  • 依賴XcodeCoverage來匯出單元測試覆蓋率
s.test_spec 'Tests' do |h|
  h.source_files = 'TestExample/Tests/**/*.{h,m}'
h.dependency 'TestExample/Core' h.dependency 'XcodeCoverage','>= 1.3.2' h.frameworks = 'UIKit','Foundation' end 複製程式碼

示例

test_spec的好處在於,不需要和元件的Example工程繫結,任意一個元件使用者都可以跑單元測試並輸出單元測試覆蓋率。

一般到這裡了就可以參考XcodeCoverage說明進行使用即可。但是這裡可能比較麻煩,而且每個元件需要單獨設定,不是特別方便。因此我這邊製作了一個自動化的外掛cocoapods-unit-test

cocoapods-unit-test外掛

安裝

直接安裝

gem install cocoapods-unit-test
複製程式碼

或者使用Gemfile然後進行bundle install

source 'https://rubygems.org/'

gem 'cocoapods','>= 1.8.4'
gem 'xcpretty','~> 0.3.0'
gem 'cocoapods-unit-test','~ 1.0'
複製程式碼

使用

然後Podfile裡面新增

plugin 'cocoapods-unit-test',:names => ["TestExample"]
複製程式碼

然後在Podfile目錄下執行bundle exec pod install

即可

說明:這裡不限於在元件的Example工程使用,在任意一個APP內都可以這樣使用。

單測覆蓋率匯出

然後在Podfile目錄下執行,就會自動跑單測然後輸出結果。

bundle exec pod test TestExample
複製程式碼

說明:TestExample是這個元件的名稱

執行結果

覆蓋率結果

總結說明

該工具還是非常方便好用的,方便在CI環境使用,歡迎體驗。

可以直接看外掛主頁介紹cocoapods-unit-testExample工程