ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Pytest框架的GitHub项目Jenkins持续集成

2020-05-19 14:07:05  阅读:290  来源: 互联网

标签:Files bin GitHub allure x86 test Pytest Program Jenkins


Jenkins安装Allure插件

1.进入jenkins系统管理 -> 管理插件

2.点击可选插件

3.搜索框输入Allure Jenkins Plugin

4.选中安装,安装后如下。

 

Jenkins安装Allure Commandline工具

1.进入jenkins系统管理 -> 全局工具安装(Global Tool Configuration)

2.找到Allure Commandline,点击Allure Commandline安装

3.输入一个别名,取消勾选Install automatically

4.输入已下载好的allure2.9.0所在路径,注意:不要进入到bin目录

5.点击保存

 

Jenkins新建一个项目

1.选择新建一个自由风格的软件项目 -> 点击确定

2.输入一些项目描述

3.选择GitHub 项目

4.输入项目 url

 

源码管理配置

5.勾选Git

6.Repository URL输入地址同第四步

7.点击Add添加github的用户名和密码

 

构建触发器

8.勾选Poll SCM # 根据定时任务,查看github版本是否更新,如果更新会自动构建项目

9.输入crontab命令,举例:*/1 * * * * # 每一分钟检查一次

 

构建(以Windows为例)

10.点击增加构建步骤,选择Execute windows batch command

11.Command输入以下内容:

set path=%path%;D:\Anaconda3;D:\Anaconda3\Scripts;D:\Anaconda3\Library\bin;D:\Anaconda3\Library\usr\bin;D:\Anaconda3\Library\mingw-w64\bin
pytest
exit 0

注意:

-这里set path设置的是系统环境变量,如果你已经在系统环境变量里把以上东西放进path里了,这里可以忽略。

-因为我只是放在了个人环境变量里,所以在jekins直接运行pytest,会报错'pytest' 不是内部或外部命令...

-运行jekins可以临时把pytest放进环境变量里,在cmd运行where pytest找到pytest.exe所在目录,我这里是在Anaconda3\Scripts,并且把其相关的也加入进来,就像去高级系统设置添加环境变量一样,否则会报错找不到模块。

-jenkins执行windows命令,若退出代码不为0 ,则jenkins会将构建标记为失败,所以需要加上exit 0表示执行完成退出。

 

构建后操作

12.点击增加构建后操作步骤,选择Allure Report

13.Path路径输入:生成的报告文件夹名称。(⚠️ 文件夹名称与pytest生成的报告文件夹名称一致)(我的是report文件夹:addopts = -s --alluredir=report)

14.设置完成点击保存。

 

触发项目构建

项目构建会运行测试代码,构建方式有两种:

1.手动触发构建

2.更新github代码,触发器在定时任务到达时,会出发项目构建

 

成功后控制台输出

Started by user admin
Running as SYSTEM
Building in workspace D:\Program Files (x86)\Jenkins\workspace\allure_test
using credential b3b8744d-d4b3-4053-aabf-53ec58085521
 > D:\Program Files (x86)\Git\bin\git.exe rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > D:\Program Files (x86)\Git\bin\git.exe config remote.origin.url https://github.com/JEyeshield/Test_Allure.git # timeout=10
Fetching upstream changes from https://github.com/JEyeshield/Test_Allure.git
 > D:\Program Files (x86)\Git\bin\git.exe --version # timeout=10
using GIT_ASKPASS to set credentials 
 > D:\Program Files (x86)\Git\bin\git.exe fetch --tags --force --progress -- https://github.com/JEyeshield/Test_Allure.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > D:\Program Files (x86)\Git\bin\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
 > D:\Program Files (x86)\Git\bin\git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10
Checking out Revision 4959d39a771ba90b1d029fe25eb1d85c12c765b8 (refs/remotes/origin/master)
 > D:\Program Files (x86)\Git\bin\git.exe config core.sparsecheckout # timeout=10
 > D:\Program Files (x86)\Git\bin\git.exe checkout -f 4959d39a771ba90b1d029fe25eb1d85c12c765b8 # timeout=10
Commit message: "v2"
 > D:\Program Files (x86)\Git\bin\git.exe rev-list --no-walk 4959d39a771ba90b1d029fe25eb1d85c12c765b8 # timeout=10
[allure_test] $ cmd /c call C:\WINDOWS\TEMP\jenkins1408643635908210552.bat

D:\Program Files (x86)\Jenkins\workspace\allure_test>set path=C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS\System32;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;"D:\Program Files (x86)\Java\jdk1.8.0_144\bin;D:\Program Files (x86)\Java\jdk1.8.0_144\jre\bin;";"D:\Program Files (x86)\jmeter\apache-jmeter-5.1.1\bin;";D:\Program Files (x86)\Git\cmd;C:\WINDOWS\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;D:\Anaconda3;D:\Anaconda3\Scripts;D:\Anaconda3\Library\bin;D:\Anaconda3\Library\usr\bin;D:\Anaconda3\Library\mingw-w64\bin 

D:\Program Files (x86)\Jenkins\workspace\allure_test>pytest
============================= test session starts =============================
platform win32 -- Python 3.7.4, pytest-5.2.1, py-1.8.0, pluggy-0.13.0
rootdir: D:\Program Files (x86)\Jenkins\workspace\allure_test, inifile: pytest.ini, testpaths: ./scripts
plugins: allure-pytest-2.8.13, arraydiff-0.3, doctestplus-0.4.0, html-2.1.1, metadata-1.8.0, openfiles-0.4.0, remotedata-0.3.2
collected 4 items

scripts\test_001.py ...F

================================== FAILURES ===================================
__________________________ Test_Abc.test_abc_002[2] ___________________________

self = <scripts.test_001.Test_Abc object at 0x00000136BE490388>, a = 2

    @pytest.mark.parametrize('a', [0, 1, 2])
    @allure.severity(allure.severity_level.CRITICAL)
    @allure.step(title='第二个测试.')
    def test_abc_002(self, a):
        allure.attach('描述', '我是测试步骤002的描述~~~')
>       assert a != 2
E       assert 2 != 2

scripts\test_001.py:15: AssertionError
========================= 1 failed, 3 passed in 0.15s =========================

D:\Program Files (x86)\Jenkins\workspace\allure_test>exit 0 
[allure_test] $ "D:\Program Files (x86)\allure-2.9.0\bin\allure.bat" generate "D:\Program Files (x86)\Jenkins\workspace\allure_test\report" -c -o "D:\Program Files (x86)\Jenkins\workspace\allure_test\allure-report"
Report successfully generated to D:\Program Files (x86)\Jenkins\workspace\allure_test\allure-report
Allure report was successfully generated.
Creating artifact for the build.
Artifact was added to the build.
Build step 'Allure Report' changed build result to UNSTABLE
Finished: UNSTABLE

 

查看Allure Report报告内容

 

标签:Files,bin,GitHub,allure,x86,test,Pytest,Program,Jenkins
来源: https://www.cnblogs.com/liangjt/p/12916563.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有