jenkins集成python的单元测试
最近在研究jenkins的集成,然后想把自己写的python工具也用jenkins集成一下
废话少说,来看结构

sparking.py
'''
@author: lianying
'''
class Sparking:
@staticmethod
def get_num_of_zero(bits_num, key):
cnt = 0
while key:
cnt += 1
key &= key -1
return bits_num - cnt
@staticmethod
def get_num_of_one(bits_num, key):
cnt = 0
while key:
cnt += 1
key &= key -1
return cnt def main():
s = Sparking()
s.get_num_of_zero(32, 5) if __name__ == '__main__':
main()
test_sparking.py
'''
@author: allen
'''
import pytest
from sparking.sparking import Sparking class TestSparking(object):
@pytest.mark.parametrize("bits_num, key, expected",[
(8,5,2),
(16,5,2),
(32,5,2),
(64,5,2)
])
def test_get_num_of_one(self, bits_num, key, expected):
assert Sparking.get_num_of_one(bits_num, key) == expected @pytest.mark.parametrize("bits_num, key, expected",[
(8,5,6),
(16,5,14),
(32,5,30),
(64,5,62)
])
def test_get_num_of_zero(self, bits_num, key, expected):
assert Sparking.get_num_of_zero(bits_num, key) == expected
代码上次svn,然后配置jenkins;jenkins的安装就不介绍了,网上一搜一大片;jenkins里先安装好Cobertura Plugin插件,用来显示代码覆盖率的
1、创建job
2、配置svn

3、设置触发器

4、构建 (前提需要安装pytest-cov)

5、构建后展示report

6、保存、应用即可
7、执行结果和报告
console :
Started by user anonymous
Building on master in workspace C:\Users\lianying\.jenkins\jobs\test_django\workspace
Updating svn://10.134.28.113/project/sparking at revision '2016-06-08T13:54:59.004 +0800'
U tests\test_sparking.py
At revision 28
[workspace] $ cmd /c call D:\Dev\tomcat\temp\hudson4704689285977025139.bat C:\Users\lianying\.jenkins\jobs\test_django\workspace>py.test tests\test_sparking.py --junitxml=pytest_result.xml --cov=sparking --cov-report=xml
============================= test session starts =============================
platform win32 -- Python 2.7.0, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
rootdir: C:\Users\lianying\.jenkins\jobs\test_django\workspace, inifile:
plugins: cov-2.2.1, html-1.8.1
collected 8 items tests\test_sparking.py ........ generated xml file: C:\Users\lianying\.jenkins\jobs\test_django\workspace\pytest_result.xml
--------------- coverage: platform win32, python 2.7.0-final-0 ----------------
Coverage XML written to file coverage.xml
========================== 8 passed in 0.11 seconds =========================== C:\Users\lianying\.jenkins\jobs\test_django\workspace>exit 0
[Cobertura] Publishing Cobertura coverage report...
Publishing Cobertura coverage results...
Cobertura coverage report found.
Recording test results
Finished: SUCCESS
报告截图:


PS:补充下在virtualenv下的执行
从第4步开始
4、构建 这里需要先安装pytest-html 和pytest-cov ,然后添加SHELL
pip freeze > ./requirements.txt
if [ ! -d "venv" ]; then
virtualenv -p /usr/bin/python venv
fi . venv/bin/activate
pip install -r requirements.txt
cd sparking
py.test tests/test_sparking.py --html=pytest_result.html --cov=sparking --cov-report=xml
这里使用了pytest-html生成的报告更好看一些

后面基本一致,注意生成报告的路径要配置正确,看下结果:


jenkins集成python的单元测试的更多相关文章
- Jenkins集成jacoco收集单元测试覆盖率
Jenkins集成jacoco收集单元测试覆盖率 2020-02-28 目录 0 整体思路1 Jenkins创建JacocoIntegrateTestDemo项目2 配置源码管理3 配置Build4 ...
- jenkins集成python时出现"Non-ASCII character '\xe6' in file"错误解决方法
我的问题: 使用python3.5,在Linux环境下手动执行python文件时不报错,但是用jenkins自动执行时就报"Non-ASCII character '\xe6' in fil ...
- jenkins集成python脚本
Jenkins配置获取源码并构建 1. Jenkins系统设置--管理插件,搜索安装“GitLab”和“Git” 2. 新建任务,选择自由风格项目 3. 源码管理 git (1)Repository ...
- Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)
使用jenkins+git+python脚本进行持续集成的接口测试,在jenkins平台,利用插件等,把管理代码的git仓库的代码更新下来进行持续接口测试,python进行开发测试脚本,git进行远程 ...
- jenkins 集成 redmine 账户验证的方案
jenkins 集成 redmine 账户验证的方案 赖勇浩(http://laiyonghao.com) 动机 Jenkins 是最著名的持续集成工具,又因为它开源免费.插件众多,成为了许多团队做持 ...
- Jenkins构建Python项目提示:'python' 不是内部或外部命令,也不是可运行的程序
问题描述: jenkin集成python项目,立即构建后,发现未执行成功,查看Console Output 提示:'Python' 不是内部或外部命令,也不是可运行的程序,如下图: 1.在 Windo ...
- Jenkins集成allure测试报告
前言 Allure框架是一个功能强大的自动化测试报告工具,不仅支持多种编程语言,而且能够完美的与各种集成工具结合,包括Jenkins,TeamCity,Bamboo,Maven等等,因此受到了很多测试 ...
- DEVOPS技术实践_11:Jenkins集成Sonar
前言 前面已经有介绍sonar的安装,简单应用,下面在简答的研究一下sonar和jenkins集成的简单使用,对于sonar的安装不做介绍 一 sonar的简单介绍 持续检查避免了低质量的代码,比如S ...
- Jenkins集成appium自动化测试(Windows篇)
一,引入问题 自动化测试脚本绝大部分用于回归测试,这就需要制定执行策略,如每天.代码更新后.项目上线前定时执行,才能达到最好的效果,这时就需要进行Jenkins集成. 不像web UI自动化测试可以使 ...
随机推荐
- 2017.10.28 C组比赛总结
这次比赛有点坑... [GDKOI2004]石子游戏 方法:判断奇偶性 输入n 如果n是奇数,输出 xiaoshi 如果n是偶数,输出 xiaoyong 比赛得分:30 错因:找错规律了(忘记了两个人 ...
- 小白基础Python重要的字符串详解String的内置方法
String的内置方法: st='hello world {name} is {age}' {} 特殊内容需要识别format print(st.count('1')) 统计元素个数 print ...
- CE修改器使用教程 [入门篇]
Cheat Engine 一般简称CE,是一个开放源代码的作弊软件,其功能包括:内存扫描.十六进制编辑器.调试工具,Cheat Engine 自身附带了外挂制作工具,可以用它直接生成外挂工具,CE可以 ...
- ArcGis之popup列表字段自定义
ArcGis之popup列表字段自定义 featureLayer图层中可以使用popupTemplate属性添加弹窗. API:https://developers.arcgis.com/javasc ...
- 小P的架构生活(下)
小L强烈建议团队使用微服务,并极力推荐了前公司用的一套分布式事务解决方案. 小P经过反复思考查证并做了大量的尝试后,辨证地对微服务架构做了如下分析: 为什么要用微服务,微服务带来了哪些好处? 1.减少 ...
- dedecms body 输出自动替换结果。
{dede:field.body function='str_replace("张三","李四",@me)'/} body内容中的张三全部换成了李四
- Linux 配置:Xmanager连接Linux图形界面
想要在远程终端使用用图形界面来操作和控制Linux服务器,就在windows下像使用MSTSC一样.linux通过XDMCP来提供这种支持,我们只要用一个终端仿真软件如:xmanager就可以实现,但 ...
- mysql统计表中条目个数的方法举例
说明:以下标红且加大括号的均需要替换为实际待查询的表名或数据库名. [1].统计某张或某几张表的数据量: select count(*) from {TABLE_NAME}; #or select c ...
- 01:main特别之处
有点意思的main 图解运行结果解释:[:数组L:长类型ava.lang:包名String:字符串类型元素@:分界符667262b6:哈希值主函数特殊之处:public static void mai ...
- Linux umask 档案预设权限/touch 建立空档案或修档案件时间
1 建立档案时,权限一般设为-rw-r--r-- 2 建立目录时,权限一般设为drwxr-xr-x 3 touch 选项与参数 -a : 仅修订access time -c :仅修改档案的时间,若该 ...