Ios 正在使用绝对路径生成SonarQube代码覆盖率报告
我生成了SonarQube通用代码覆盖率,包括以下内容:Ios 正在使用绝对路径生成SonarQube代码覆盖率报告,ios,swift,bash,sonarqube,code-coverage,Ios,Swift,Bash,Sonarqube,Code Coverage,我生成了SonarQube通用代码覆盖率,包括以下内容: #/usr/bin/env bash 设置-euo管道故障 函数转换文件{ 本地xccovarchive_文件=“$1” 本地文件_name=“$2” 本地xccov_选项=“$3” 回声“” xcrun xccov view$xccov_选项--文件“$file_name”“$xccovarchive_file”|\ sed-n' s/^*\([0-9][0-9]*\):0.*$//p; s/^*\([0-9][0-9]*\):[1-9
#/usr/bin/env bash
设置-euo管道故障
函数转换文件{
本地xccovarchive_文件=“$1”
本地文件_name=“$2”
本地xccov_选项=“$3”
回声“”
xcrun xccov view$xccov_选项--文件“$file_name”“$xccovarchive_file”|\
sed-n'
s/^*\([0-9][0-9]*\):0.*$//p;
s/^*\([0-9][0-9]*\):[1-9].$//p
'
回声“
}
函数xccov_到_generic{
回声“
对于“$@”中的xccovarchive_文件,请执行以下操作
本地xccov_选项=“”
如果[[$xccovarchive_file==*”.xcsult“*]”,则
xccov_选项=“--存档”
fi
xcrun xccov view$xccov_options--文件列表“$xccovarchive_file”|同时读取-r file_name;do
转换文件“$xccov存档文件”$file\u name“$xccov\u选项”
完成
完成
回声“
}
xccov_至_通用“$@”
报告已成功生成,但文件路径为绝对路径
正在生成的内容:
/Users/daniyal/MyApp/AccountStore/AccountStore/AccountProvider.swift
我想要什么
AccountStore/AccountStore/AccountProvider.swift
当前生成的sonarqube-generic-coverage.xml摘录
<coverage version="1">
<file path="/Users/daniyal/MyApp/AccountStore/AccountStore/AccountProvider.swift">
<lineToCover lineNumber="27" covered="true"/>
<lineToCover lineNumber="28" covered="true"/>
<lineToCover lineNumber="29" covered="true"/>
<lineToCover lineNumber="30" covered="true"/>
<lineToCover lineNumber="31" covered="true"/>
<lineToCover lineNumber="33" covered="true"/>
<lineToCover lineNumber="34" covered="true"/>
<lineToCover lineNumber="35" covered="true"/>
<lineToCover lineNumber="38" covered="true"/>
<lineToCover lineNumber="39" covered="true"/>
</file>
</coverage>
在那
将此行更改为:
convert_file "$xccovarchive_file" "$file_name" "$xccov_options"
对下列事项:
convert_file "$xccovarchive_file" "$(echo ${file_name} | cut -d'/' -f5-)" "$xccov_options"
您可以将数字从5
调整为您想要的其他数字
替代方法: 您可以传递:
“AccountStore${file#u name#*AccountStore}”
--或--
您可以更改行:localfile\u name=“$2”
类似于localfile\u name=“AccountStore${2}*AccountStore}”
将此行更改为:
convert_file "$xccovarchive_file" "$file_name" "$xccov_options"
对下列事项:
convert_file "$xccovarchive_file" "$(echo ${file_name} | cut -d'/' -f5-)" "$xccov_options"
您可以将数字从5
调整为您想要的其他数字
替代方法: 您可以传递:
“AccountStore${file#u name#*AccountStore}”
--或--
您可以更改行:localfile\u name=“$2”
类似于localfile\u name=“AccountStore${2}*AccountStore}”
生成的内容:/Users/daniyal/MyApp/AccountStore/AccountStore/AccountProvider.swift
我想要什么AccountStore/AccountStore/AccountProvider.swift
要从变量中修剪前缀,请使用:
$echo“$PWD”#PWD由shell设置
/家/我
$my_absolute_path=/home/me/some/file.txt
$echo“相对路径:${my_absolute_path}${PWD}/}”
相对路径:some/file.txt
这将从${my_absolute_path}
开始修剪${PWD}/
,剩下的是相对于当前工作目录的文件路径
因此,在您的情况下,请尝试:
echo " <file path=\"${file_name#${PWD}/}\">"
生成的内容:/Users/daniyal/MyApp/AccountStore/AccountStore/AccountProvider.swift
我想要什么AccountStore/AccountStore/AccountProvider.swift
要从变量中修剪前缀,请使用:
$echo“$PWD”#PWD由shell设置
/家/我
$my_absolute_path=/home/me/some/file.txt
$echo“相对路径:${my_absolute_path}${PWD}/}”
相对路径:some/file.txt
这将从${my_absolute_path}
开始修剪${PWD}/
,剩下的是相对于当前工作目录的文件路径
因此,在您的情况下,请尝试:
echo " <file path=\"${file_name#${PWD}/}\">"
现在还不清楚参数$2到函数convert_文件的变化如何才能给出一个明确的答案。在任何情况下,我都会直接更改第8行上的文件名,或者在此函数中引入一个新的本地变量,以便按照您的意愿计算文件名/路径。是否允许修改脚本?根据需要更改函数
convert_file()
?还不清楚参数$2与函数convert_file的关系如何才能给出明确的答案。在任何情况下,我都会直接更改第8行上的文件名,或者在此函数中引入一个新的本地变量,以便按照您的意愿计算文件名/路径。是否允许修改脚本?根据需要更改函数convert\u file()
?