Jenkins實現iOS自動化測試及覆蓋率報告輸出
一、Jenkins安裝,Xcode外掛安裝
略
二、Xcode工程準備
Xcode工程(這裡我用的是workspace)包含兩個Target,一個是UnitTest專案
開啟Xcode左上角Manage Schemes,將Shared打鉤
選中專案的Scheme點選左下角Edit,開啟Gather coverage data,開啟覆蓋率收集,在Debug模式下會收集覆蓋率報告。
寫好UnitTestCase,command+u跑一下,在Xcode裡可以看到用例結果報告和覆蓋率報告。
三、整合到Jenkins實現自動化測試
新建Job,設定原始碼branch,這裡最好新建一個專門用於測試的branch,這裡取名unittest。
設定構建觸發器*/5 * * * *
,每5分鐘檢查一次原始碼變化。
增加構建步驟,選擇Execute shell指令碼
輸入指令碼:
#!/bin/bash -l
#新建目錄用於儲存報告
mkdir test-reports
#pod可能失敗的全域性引數設定
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 輸出報告轉換為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轉換覆蓋率報告為html檔案,jenkins可讀
#--input-format profdata xcode生成的為profdata格式的檔案,轉換為html以便jenkins顯示
#--ignore 排除篩選需要計算的檔案,多個格式寫多個ignore表示式
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->系統管理-> 管理外掛,找到JUnit Plugin和HTML Publisher plugin,安裝重啟jenkins。
增加構建後操作,選擇Publish Junit test result report
,配置xml檔案路勁為第三步配置的test-reports/*.xml
。
再增加一個構建後操作,選擇Publish HTML reports
, 配置html路勁為第三步配置的reports
,Index檔案為index.html
,可以設定標題Reports title為Coverage Report
。
點選立即構建,等待構建完成,返回job主頁,可以看到junit測試結果報告和覆蓋率的圖表了。
文章是後面寫的,可能有遺漏的地方,如果有任何疑問和問題請給我留言。
相關文章
- 自動化會提高測試覆蓋率,那測試覆蓋率是什麼?
- 自動化測試如何實現全面覆蓋
- iOS 覆蓋率檢測原理與增量程式碼測試覆蓋率工具實現iOS
- 如何制定介面自動化測試的覆蓋率?
- 測試覆蓋率二改實現
- Jacoco 與 Jenkins 整合獲取覆蓋率報告Jenkins
- 程式碼覆蓋率與測試覆蓋率比較
- 用docxtpl庫實現docx報告自動化輸出
- Jenkins上實現Python + Jenkins + Allure Report 介面自動化測試持續整合,並生成allure-report測試報告JenkinsPython測試報告
- 安卓app功能或自動化測試覆蓋率統計(不用instrumentation啟動app)安卓APP
- 關於super-jacoco測試覆蓋率具體實現
- go 程式碼覆蓋率測試Go
- 單元測試接入覆蓋率
- Jacoco--測試覆蓋率工具
- 自動化單元工具EvoSuie的程式碼覆蓋報告UI
- 簡記前後端如何實現統計測試覆蓋率後端
- Mockito提升單元測試覆蓋率Mockito
- 測試覆蓋率 之 Cobertura的使用
- PouchContainer 整合測試覆蓋率統計AI
- Airtest結合tidevice實現IOS自動化測試AIIDEdeviOS
- 自動化測試人員,專職寫自動化用例,除了用例覆蓋率還有哪些指標?指標
- Java 程式碼覆蓋率調研報告Java
- 單元測試的覆蓋率計算
- Linux下lcov單元測試覆蓋率Linux
- 介面自動化測試的覆蓋和 Diff 平臺的悖論
- idea2022.1 檢視單測覆蓋率展示分支覆蓋率Idea
- 前端精準測試探索:覆蓋率實時統計工具前端
- Appium+Python實現iOS自動化測試~環境搭建APPPythoniOS
- 實用測試技能分享:jmeter+Jenkins效能測試自動化搭建JMeterJenkins
- Git + Jenkins 自動化 NGINX 釋出簡易實現GitJenkinsNginx
- asp.net core + jenkins 實現自動化釋出ASP.NETJenkins
- java覆蓋率檢測-jacocoJava
- Jenkins整合appium自動化測試(Windows篇)JenkinsAPPWindows
- vivo 基於 JaCoCo 的測試覆蓋率設計與實踐
- 測試開發之單元測試-實現Git增量程式碼的Jacoco覆蓋率統計Git
- Postman實現UI自動化測試PostmanUI
- 如何實現高度自動化測試?
- AutoRunner 功能自動化測試專案實訓之第二的案例指令碼增強,正反例設計增加測試覆蓋率範圍(六)指令碼
- 介面自動化使用requests生成測試報告測試報告