一凭戴、Jenkins安裝惧磺,Xcode插件安裝
略
二旱易、Xcode工程準(zhǔn)備
Xcode工程(這里我用的是workspace)包含兩個Target份乒,一個是UnitTest項(xiàng)目
打開Xcode左上角Manage Schemes,將Shared打鉤
選中項(xiàng)目的Scheme點(diǎn)擊左下角Edit椰憋,打開Gather coverage data厅克,打開覆蓋率收集,在Debug模式下會收集覆蓋率報告橙依。
寫好UnitTestCase证舟,command+u跑一下,在Xcode里可以看到用例結(jié)果報告和覆蓋率報告窗骑。
三女责、集成到Jenkins實(shí)現(xiàn)自動化測試
新建Job,設(shè)置源碼branch创译,這里最好新建一個專門用于測試的branch抵知,這里取名unittest。
設(shè)置構(gòu)建觸發(fā)器*/5 * * * *
软族,每5分鐘檢查一次源碼變化刷喜。
增加構(gòu)建步驟,選擇Execute shell腳本
輸入腳本:
#!/bin/bash -l
#新建目錄用于保存報告
mkdir test-reports
#pod可能失敗的全局參數(shù)設(shè)置
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
pod install
#xcodebuild test -workspace XXX.xcworkspace -scheme XXXTests -destination 'platform=iOS Simulator,name=iPhone 6s'跑測試用例
#-enableCodeCoverage YES 收集測試覆蓋率
#ocunit2junit 輸出報告轉(zhuǎn)換為jenkins可讀的junit報告
xcodebuild test -workspace XXX.xcworkspace -scheme XXXTests -destination 'platform=iOS Simulator,name=iPhone 6s' -configuration Debug -enableCodeCoverage YES 2>&1 | ocunit2junit
#slather coverage轉(zhuǎn)換覆蓋率報告為html文件立砸,jenkins可讀
#--input-format profdata xcode生成的為profdata格式的文件掖疮,轉(zhuǎn)換為html以便jenkins顯示
#--ignore 排除篩選需要計算的文件,多個格式寫多個ignore表達(dá)式
slather coverage --html --input-format profdata --binary-basename XXXApp --scheme XXXTests --workspace XXX.xcworkspace --configuration Debug --ignore **View** --ignore **AppText** --output-directory reports XXX.xcodeproj
這里用到兩個工具颗祝, ocunit2junit 以及slather.
嘗試過用xctool浊闪,但是一直編譯不成功,于是又換回了xcodebuild螺戳。
四搁宾、讀取顯示junit和覆蓋率html報告
這里用到兩個jenkins插件,jenkins->系統(tǒng)管理-> 管理插件,找到JUnit Plugin和HTML Publisher plugin,安裝重啟jenkins倔幼。
增加構(gòu)建后操作盖腿,選擇Publish Junit test result report
,配置xml文件路勁為第三步配置的test-reports/*.xml
。
再增加一個構(gòu)建后操作凤藏,選擇Publish HTML reports
, 配置html路勁為第三步配置的reports
奸忽,Index文件為index.html
,可以設(shè)置標(biāo)題Reports title為Coverage Report
。
點(diǎn)擊立即構(gòu)建揖庄,等待構(gòu)建完成栗菜,返回job主頁,可以看到j(luò)unit測試結(jié)果報告和覆蓋率的圖表了蹄梢。
文章是后面寫的疙筹,可能有遺漏的地方富俄,如果有任何疑問和問題請給我留言。