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自动化测试可以使 ...
随机推荐
- 常见网络摄像机的端口及RTSP地址
海康威视默认IP地址:192.168.1.64/DHCP 用户名admin 密码自己设端口:“HTTP 端口”(默认为 80).“RTSP 端口”(默认为 554).“HTTPS 端 口”(默认 44 ...
- C++游戏服务器编程笔记 IP详解
C++游戏服务器编程笔记 IP详解 IP详解 INTERNET的历史 上世纪60年底起源于美国 1992年,Internet上的主机超过了100万台 现在已经是现代文明人的必需品 TCP/IP的 ...
- python多任务——协程的使用
使用yield完成多任务 import time def test1(): while True: print("--1--") time.sleep(0.5) yield Non ...
- Threadlocal线程本地变量理解
转载:https://www.cnblogs.com/chengxiao/p/6152824.html 总结: 作用:ThreadLocal 线程本地变量,可用于分布式项目的日志追踪 用法:在切面中生 ...
- Thinkphp5.0快速入门笔记(3)
学习来源与说明 https://www.kancloud.cn/thinkphp/thinkphp5_quickstart 测试与部署均在windows10下进行学习. 快速入门第三节 获取当前的请求 ...
- python网络爬虫(8)多媒体文件抽取
目的 批量下载网页图片 导入库 urllib中的request中的urlretrieve方法,可以下载图片 lxml用于解析网页 requests用于获取网站信息 import urllib from ...
- JS语法学习笔记-菜鸟教程
现在只需要<script></script>标签 javascript通常做法是放在<head>部分中,或者放在页面底部,这样可以把他们安置在同一位置,不会干扰页面 ...
- C语言字符串操作小结
1)字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串s ...
- 06-spring框架—— Spring 与Web
在 Web 项目中使用 Spring 框架,首先要解决在 web 层(这里指 Servlet)中获取到 Spring容器的问题.只要在 web 层获取到了 Spring 容器,便可从容器中获取到 Se ...
- 设计数据结构之LRU缓存
leetcode 146. LRU Cache class LRUCache { private: struct Node { int key; int val; Node* prev; Node* ...