[TOC]
覆蓋率報告
sonarqube需要的報告
-
隨便選擇一個項目,點擊進(jìn)去,選擇
配置->設(shè)置image -
找到
Swift (Backelite)這個插件,這個插件及支持oc也支持swift,而且對oc語法停止了更新,對swift語法在持續(xù)更新中image -
分析插件中默認(rèn)的報告格式
sonar-reports/coverage*.xml,需要根目錄下的這個路徑中的報告文件,文件名是以coverage開頭,文件類型是xml的一份報告image
XcodeCoverage工具
-
生成覆蓋率文件,使用
cmd+U即可測試整個項目中的測試用例。但是這個覆蓋率只能在xcode上顯示,文件格式無法為我們使用,所以需要借助XcodeCoverage工具來解析結(jié)果成我們需要的報告文件image
-
XcodeCoverage工具的使用在另一篇已經(jīng)講過了,這里不做累述
image -
執(zhí)行命令
./getcov -s,在瀏覽器上以html的文件格式顯示覆蓋率報告image -
在Finder中找到這個HTML文件,通過瀏覽器中的本地地址即可找到這個文件??梢钥闯鰜恚潜话谝粋€文件夾
lcon中,而且是以HTML的格式展示,很明顯與我們想要的目標(biāo)格式不太一致image -
執(zhí)行命令
./getcov -x,執(zhí)行完成之后可以發(fā)現(xiàn)文件夾中多了個coverage.xml的文件,很明顯,這個文件就是我們上面的sonarqube報告中所需要的文件image -
上傳
coverage.xml文件,關(guān)于sonarqube的使用另一篇文檔有記錄,這里不做累述。執(zhí)行腳本sonar-scannerimage -
查看覆蓋率,登錄sonarqube的網(wǎng)站,便可查看這個項目的覆蓋率指標(biāo)
image
image
腳本改造
XcodeCoverage工具生成的報告文件夾是相對于
xcodeproj文件所在的根目錄文件,我們需要改造成相對于xcworkspace文件所在的根目錄下的文件路徑-
getcov腳本一次只接受一個參數(shù),如果要使用coverage.xml,操作麻煩,大致如下:- 打開xcode,使用快捷鍵
cmd+U來運行項目 - 打開終端,進(jìn)入
XcodeCoverage文件夾,運行命令./getcov -s - 打開Finder,通過上述瀏覽器中的路徑找到
lcov文件夾 - 切換到終端,執(zhí)行命令
./getcov -x,生成coverage.xml文件 - 拷貝
coverage.xml文件到xcodeproj文件所在根目錄下的sonar-reports文件夾中 - 拷貝
sonar-project.properties到根目錄下 - 執(zhí)行命令
sonar-scanner
- 打開xcode,使用快捷鍵
自動化腳本。上述的過程太過復(fù)雜,在真實使用的時候,需要通過自動化腳本構(gòu)建,這邊連帶 oclint 的分析,以及單元測試的整個腳本執(zhí)行都是自動化的過程。腳本暫時不考慮上傳。










