我只是在JENKINS“ Execute Shell” cmd中的Post Build活动中使用了以下shell脚本
#!/bin/bash
mvn --version
export M2_HOME=/opt/maven/maven-3.3.3 # your Mavan home path
export PATH=$PATH:$M2_HOME/bin
mvn --version
echo $HOME
echo $WORKSPACE
file=$WORKSPACE/XXXX/XXXX-reports
cd $file
cp XXXX-1.html test.html
fail=`grep "test-method.*FAIL" results.xml | sed -e 's/^.*test-
instance-name="\(.*\) ' | tr '\n' ','`
echo $fail
count=0
while [ $count -lt 5 ]
do
if [ ! -z "$fail" -a "$fail" != " " ];
then
echo `$M2_HOME/bin/mvn clean test -f ../../pom.xml -DInclude=${fail}`
cp XXXX-report.html ReReport_$count.html
retry=`expr $count + 1`
fi
done
在上面的shell脚本中,我试图运行mvn命令,并继续运行5次以增加UNIT脚本执行中的通过次数。
但是它不起作用。无法执行行家目标。因此,我只注释可执行文件并添加echo进行调试。 但是没有运气。
任何线索
答案 0 :(得分:0)
我建议您使用以下脚本来修改您的脚本。在此处添加参数。 产品日志文件:mvn_jenkins.log将使您轻松找到mjuarez建议的问题:
#!/bin/bash
MVNCMD=$(command -v mvn)
MVNPARAMS=" -version" # replace with your appropriate params
LOGFILE="mvn_jenkins.log"
COUNT=0
while [ $COUNT -lt 5 ]; do
echo "Execute: $MVNCMD $MVNPARAMS" >> $LOGFILE
echo "-------" >> $LOGFILE
$MVNCMD $MVNPARAMS 2>&1>> $LOGFILE
echo "" >> $LOGFILE
COUNT=$((COUNT + 1))
done
说明:
MVNCMD = $(command -v mvn):将maven执行文件的完整限定名称放入MVNCMD var
$ MVNCMD $ MVNPARAMS 2>&1 >> $ LOGFILE :执行带有参数的mvn命令,并将错误输出消息(2)和常规输出消息(1)重定向到日志文件。
关于您的maven参数,我不明白您为什么使用 -DskipTests = true 。