iOS 元件單元測試覆蓋率匯出工具
阿新 • • 發佈:2020-06-24
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-test和Example工程