
文章插图
- 代码覆盖率设置,XcodeCoverage的说明强调了不要用于AppStore的工程,为了避免线上事故,我们通过命令来设置,不直接在工程里设置:

文章插图
所以修改xcode的构建命令新加 GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES,命令如下:
xcodebuild -UseModernBuildSystem=NO -enableCodeCoverage=YES -cOnfiguration=Debug GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES -workspace "./${moduleName}.xcworkspace" -scheme "${moduleName}_Example" -destination 'platform=iOS Simulator,name=iPhone 8,OS=13.2.2' test5 Bamboo结果
文章插图
覆盖率下载地址:

文章插图
六 脚本汇集
1 本地脚本
以BQLoginModule为例,最终本地脚本命令如下,大家可以重新找到本地目录执行查看效果:
git clone --depth=1 ***/BQMobileshop/BQLoginModule.gitcd BQLoginModule/Examplepod updatepwdmoduleName="BQLoginModule"testName="BQLoginTests"biu -pod install ./lsls ./Podsrm -f "./Pods/Target Support Files/Pods-${testName}/Pods-${testName}.debug.xcconfig"cp -f "./Pods/Target Support Files/Pods-${moduleName}_Example/Pods-${moduleName}_Example.debug.xcconfig" "./Pods/Target Support Files/Pods-${testName}/Pods-${testName}.debug.xcconfig"cat "./Pods/Target Support Files/Pods-${testName}/Pods-${testName}.debug.xcconfig"xcodebuild clean -workspace "./${moduleName}.xcworkspace" -scheme "${moduleName}_Example"xcodebuild -UseModernBuildSystem=NO -enableCodeCoverage=YES -cOnfiguration=Debug GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES -workspace "./${moduleName}.xcworkspace" -scheme "${moduleName}_Example" -destination 'platform=iOS Simulator,name=iPhone 8,OS=13.2.2' test > utlogfile.txtcat utlogfile.txt |grep ".xcresult" > utlogpath.txtlogStr=$(cat ./utlogpath.txt)logPath=${logStr:1}if [ -z "$logPath" ]; then exit 1fised "s/${moduleName}.build\/Debug-iphonesimulator\/${moduleName}_Example.build/Pods.build\/Debug-iphonesimulator\/${moduleName}.build/g" ./Pods/XcodeCoverage/env.sh> cov_env1.txtsed "s/${moduleName}\/Example/${moduleName}\/${moduleName}\/Classes/g" ./cov_env1.txt > cov_env2.txtcp -f ./Pods/XcodeCoverage/env.sh ./Pods/XcodeCoverage/env_bak.shrm -f ./Pods/XcodeCoverage/env.shcp ./cov_env2.txt ./Pods/XcodeCoverage/env.shcat "./utlogfile.txt"|ocunit2junitls test-reportscp ./cov_env2.txt ./Pods/XcodeCoverage/env.shmkdir xmlout./Pods/XcodeCoverage/getcov -x -o xmloutls ./xmlout/lcovcat "./utlogfile.txt"|xcpretty -t -r html --output testresult/testresult.htmlls te2 Bamboo脚本Bamboo脚本分成2部分,一个是在Bamboo上执行的脚本
rm -fr "/Users/admin/Library/Application Support/iBiu/BQLoginModule"mkdir "/Users/admin/Library/Application Support/iBiu/BQLoginModule"rm -fr ./BQLoginModulegit clone --depth=1 ***/BQMobileshop/BQLoginModule.gitcd BQLoginModule/Examplecp "./BQLoginModule/Resource/spec_sources" "/Users/admin/Library/Application Support/iBiu/BQLoginModule"cp "./BQLoginModule/Resource/pod_setup" "/Users/admin/Library/Application Support/iBiu/BQLoginModule"ls "/Users/admin/Library/Application Support/iBiu/BQLoginModule"biu -pod install ./sh UT.sh脚本剩下部分写入 UT.sh,放在BQLoginModule/Example目录下,然后上传到git仓库来执行,大家做的时候注意修改变量名称:pwdmoduleName="BQLoginModule"testName="BQLoginTests"ls ./Podsrm -f "./Pods/Target Support Files/Pods-${testName}/Pods-${testName}.debug.xcconfig"cp -f "./Pods/Target Support Files/Pods-${moduleName}_Example/Pods-${moduleName}_Example.debug.xcconfig" "./Pods/Target Support Files/Pods-${testName}/Pods-${testName}.debug.xcconfig"cat "./Pods/Target Support Files/Pods-${testName}/Pods-${testName}.debug.xcconfig"xcodebuild clean -workspace "./${moduleName}.xcworkspace" -scheme "${moduleName}_Example"xcodebuild -UseModernBuildSystem=NO -enableCodeCoverage=YES -cOnfiguration=Debug GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES -workspace "./${moduleName}.xcworkspace" -scheme "${moduleName}_Example" -destination 'platform=iOS Simulator,name=iPhone 8,OS=13.2.2' test > utlogfile.txtcat utlogfile.txt |grep ".xcresult" > utlogpath.txtlogStr=$(cat ./utlogpath.txt)logPath=${logStr:1}if [ -z "$logPath" ]; then exit 1fised "s/${moduleName}.build\/Debug-iphonesimulator\/${moduleName}_Example.build/Pods.build\/Debug-iphonesimulator\/${moduleName}.build/g" ./Pods/XcodeCoverage/env.sh> cov_env1.txtsed "s/${moduleName}\/Example/${moduleName}\/${moduleName}\/Classes/g" ./cov_env1.txt > cov_env2.txtcp -f ./Pods/XcodeCoverage/env.sh ./Pods/XcodeCoverage/env_bak.shrm -f ./Pods/XcodeCoverage/env.shcp ./cov_env2.txt ./Pods/XcodeCoverage/env.shcat "./utlogfile.txt"|ocunit2junitls test-reportscp ./cov_env2.txt ./Pods/XcodeCoverage/env.shmkdir xmlout./Pods/XcodeCoverage/getcov -x -o xmloutls ./xmlout/lcovcat "./utlogfile.txt"|xcpretty -t -r html --output testresult/testresult.htmlls test
推荐阅读
-
-
-
-
-
-
-
-
-
-
- 怎么用ps时间轴做帧动画,ps里怎么将大量做成帧动画效果
- Ps如何使用画板工具,如何在现有文档中添加新画板图片
- cad打字怎么打
- 你好星期六,vivo桌面猜你喜欢怎么删除
- 过期奶油能做什么,过期的淡奶油能做什么
- ps如何描线稿,ps需要如何才可以提取线稿
- 帆布鞋上的泥点怎么处理,鞋上的泥点怎么处理鞋上的污垢
- 更换同型号打印机后怎么设置
- 枸杞扦插繁殖方法
