问题说明
在centos下安装了jenkins,在构建步骤中选择执行shell
添加命令
py.test /home/test/test_do.py
执行提示
+ py.test /home/tet/test_do.py
/tmp/jenkins6679338483323490176.sh: line 2: py.test: command not found
google找到思路
jenkins找不到命令一般有两种解决方式(前提是jenkins所在用户组有该命令的执行权限):
1、增加环境变量:在待执行的shell脚本前,执行export命令:export PATH = xxx:$PATH(xxx为找不到命令的所在目录)
2、脚本中直接使用命令的绝对路径:/usr/local/bin/py.test xxxx
使用第2种方法尝试解决
- 在linux中使用命令which pytest,找到pytest命令的路径 (我找到的路径为/root/anaconda2/bin/pytest)
- 在jenkins命令中更改为 /root/anaconda2/bin/pytest /home/ling/test_do.py
出现报错,没有权限
+ /root/anaconda2/bin/pytest /home/ling/test_do.py
/tmp/jenkins8129489062926013803.sh: line 2: /root/anaconda2/bin/pytest: Permission denied
如上google找到的思路所说,应该是jenkins所在用户组没有该命令的执行权限( /root 目录下的权限)
jenkins默认是使用jenkins账户来进行操作的,更改为root账号
更改jenkins默认用户的方法,参考文章
修改jenkins默认的用户
- 修改成功后,重新启动jenkins
- 构建成功
扩展 pytest使用
/root/anaconda2/bin/pytest /home/ling/test_do.py -s --reruns 1 --junit-xml=test_result.xml
重试运行cases -reruns NUM
NUM 为重试次数显示print内容 -s
在jenkins控制台输出会显示print的内容测试结果输出到报告 –junit-xml=test_result.xml