jenkins实例配置python项目的单元测试


1、jenkins首页->新建任务

 2、输入 任务名称并选择任务类型,我这里选择自由风格的软件项目

3、配置【General】:

4、配置【源码管理】:选择源码管理工具【Git】,【Repository URL】为git上的源码地址,选择git@gitee.com:******/screws.git,【Credentials】提供凭据,git服务器上配置好的ssh-key,具体配置请查看git相关教程,Branches选择代码分支 (如果是SVN也一样,安装SVN插件后这里就能进行配置)

 5、配置【构建触发器】:设置什么时候进行构建

  1. 触发远程构建 (例如,使用脚本):这里使用于自动化构建,拼接url后写入代码中可以实现在脚本或者工具执行构建
  2. 其他工程构建后触发:当本job依赖的其他job被build时,执行本job
  3. 定时构建:定时执行构建任务,不管远程代码分支上的代码是否发生变化,都会执行一次构建:H H/1 * * *表示每隔一个小时构建一次
  4. 轮询 SCM:设置定时检查代码仓库是否有变更,有变更则构建:H/5 * * * *     表示每隔五分钟去检查一遍代码仓库,如果代码发生变化则执行构建,否则不构建

定时构建与轮询构建格式:* * * * *

  • 第一颗*表示分钟:取值0-59,第几分钟执行
  • 第二颗*表示小时:取值0-23,第几小时执行
  • 第三颗*表示日:取值1-31,第几日执行
  • 第四颗*表示月:取值1-12,第几月执行
  • 第五颗*表示星期:取值0-7,每周第几天执行

例如:H/5 * * * *     表示每隔五分钟执行一次

          H H/1 * * *   表示每隔一个小时执行一次

          H 2 * * *      表示每天2点进行构建

          H H 15 * *   表示每个月15号执行

          H 9 * * 1-5   表示星期一到星期5,每天上午9点整执行

          H/30 9-20 * * 1-5  表示星期一到星期5,每天上午9点到晚上八点,每隔30分钟执行

6、【构建环境】:主要是构建操作前的环境清理

7、【构建】:点击添加构建步骤,主要用于设置需要构建执行的内容:一般构建过程包括拉取版本管理工具(SCM)中的代码并编译、测试、打包、部署发布等工作,具体操作看项目要求,我这里只是对python代码进行单元测试,所以只是执行单元测试脚本即可

#!/bin/bash
#定义变量
MY_PYTHON=/root/anaconda3/envs/drr/bin #python路径
SOURCE_DIR=/var/lib/jenkins/workspace/AutoScrew/python_tests/segmentation_part #单元测试代码路径
#切换anaconda环境
sudo /bin/bash -c 'source /root/anaconda3/bin/activate drr'
cd ${SOURCE_DIR}
#echo "++执行单元测试++"
sudo ${MY_PYTHON}/python -m pytest --cov --cov-report=html:./${JOB_NAME}_${BUILD_NUMBER} --junit-xml=./${JOB_NAME}_${BUILD_NUMBER}/results.xml --html=./${JOB_NAME}_${BUILD_NUMBER}/results.html --verbose --capture=tee-sys ${SOURCE_DIR}

 

下面这个是为了解决html报告样式显示不了添加的

8、【构建后操作】:执行完构建里面的内容后的操作,一般包括报告生成、归档、邮件发送等内容,具体看项目要求

生成报告:

邮件通知: