我是靠谱客的博主 开朗期待,最近开发中收集的这篇文章主要介绍ios ,jenkins执行后,坏味道,单测覆盖率sonarqube,又是好几天,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

 

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
pod update
projectworkspace=APP.xcworkspace

proj=APP.xcodeproj
scheme=APP
sonarkey=APP
sonarprojectName=sonar_APP
projectname=APP
source=APP
testsource=APPTests

if [[ ! (-d "sonar-reports") ]]; then
    mkdir sonar-reports
fi
1.clean

xcodebuild -workspace ${projectworkspace} -scheme ${scheme} -configuration Debug clean

2.build,注意COMPILER_INDEX_STORE_ENABLE=NO
xcodebuild -workspace ${projectworkspace} -scheme ${scheme} -configuration Debug build COMPILER_INDEX_STORE_ENABLE=NO | xcpretty -r json-compilation-database -o compile_commands.json
oclint-json-compilation-database -e Pods -v -- -rc=LONG_LINE=150 -rc=NCSS_METHOD=60 -report-type pmd -o sonar-reports/lizard-report.xml -max-priority-1 300000  -max-priority-2 300000  -max-priority-3 300000

3.删除生成json里的一些警告
python /Users/dealtest/Documents/jenkins/rm_clang.py

4.执行测试,xpretty 的参数记得report前面是2个-
xcodebuild test -workspace ${projectworkspace} -scheme ${scheme} -configuration Debug -destination 'platform=iOS Simulator,OS=11.4,name=iPhone 6' -destination-timeout 360 -enableCodeCoverage Yes | xcpretty -t --report junit

5.注意命名,一定是TEST-开头,否则sonar不识别
mv build/reports/junit.xml sonar-reports/TEST-report.xml

6.把profdata格式化为xml格式,sonar可识别
slather coverage --input-format profdata --cobertura-xml --output-directory sonar-reports --workspace ${projectworkspace} --scheme ${scheme}  ${proj}
mv sonar-reports/cobertura.xml sonar-reports/coverage.xml

7.导入sonar,记得-Dsonar.tests=${testsource}一定要加上,-Dsonar.junit.reportsPath=sonar-reports/就是到目录即可
sonar-scanner -Dsonar.host.url=http:/127.0.0.1:9000 -Dsonar.login=admin -Dsonar.password=admin -Dsonar.projectKey=${sonarkey} -Dsonar.projectName=${sonarprojectName} -Dsonar.projectVersion=1.0 -Dsonar.language=objc -Dsonar.sources=${source} -Dsonar.tests=${testsource} -Dsonar.objectivec.workspace=${projectworkspace} -Dsonar.objective.appScheme=${scheme} -Dsonar.objectivec.oclint.report=sonar-reports/lizard-report.xml -Dsonar.junit.reportsPath=sonar-reports/ -Dsonar.objectivec.coverage.reportPattern=sonar-reports/coverage*.xml -Dsonar.sourceEncoding=UTF-8
rm -rf compile_commands.json
rm -rf xcodebuild.log
rm -rf .scannerwork
rm -rf sonar-reports

 

各种坑呀,命令行加-Dsonar-exclusions=**/*Test*/**后,后台配置的排除源文件不起作用, 他俩是只能有一个生效

还有一个问题,当source和testsource的目录包含相同的文件时会报错,这时候,应该

sonar.sources=.
sonar.tests=.
sonar.test.inclusions=**/*Test*/**
sonar.exclusions=**/*Test*/**

最后

以上就是开朗期待为你收集整理的ios ,jenkins执行后,坏味道,单测覆盖率sonarqube,又是好几天的全部内容,希望文章能够帮你解决ios ,jenkins执行后,坏味道,单测覆盖率sonarqube,又是好几天所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部