最近在研究jenkins的集成,然后想把自己写的python工具也用jenkins集成一下

废话少说,来看结构

sparking.py

  1. '''
  2. @author: lianying
  3. '''
  4. class Sparking:
  5. @staticmethod
  6. def get_num_of_zero(bits_num, key):
  7. cnt = 0
  8. while key:
  9. cnt += 1
  10. key &= key -1
  11. return bits_num - cnt
  12. @staticmethod
  13. def get_num_of_one(bits_num, key):
  14. cnt = 0
  15. while key:
  16. cnt += 1
  17. key &= key -1
  18. return cnt
  19.  
  20. def main():
  21. s = Sparking()
  22. s.get_num_of_zero(32, 5)
  23.  
  24. if __name__ == '__main__':
  25. main()

test_sparking.py

  1. '''
  2. @author: allen
  3. '''
  4. import pytest
  5. from sparking.sparking import Sparking
  6.  
  7. class TestSparking(object):
  8. @pytest.mark.parametrize("bits_num, key, expected",[
  9. (8,5,2),
  10. (16,5,2),
  11. (32,5,2),
  12. (64,5,2)
  13. ])
  14. def test_get_num_of_one(self, bits_num, key, expected):
  15. assert Sparking.get_num_of_one(bits_num, key) == expected
  16.  
  17. @pytest.mark.parametrize("bits_num, key, expected",[
  18. (8,5,6),
  19. (16,5,14),
  20. (32,5,30),
  21. (64,5,62)
  22. ])
  23. def test_get_num_of_zero(self, bits_num, key, expected):
  24. 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 :

  1. Started by user anonymous
  2. Building on master in workspace C:\Users\lianying\.jenkins\jobs\test_django\workspace
  3. Updating svn://10.134.28.113/project/sparking at revision '2016-06-08T13:54:59.004 +0800'
  4. U tests\test_sparking.py
  5. At revision 28
  6. [workspace] $ cmd /c call D:\Dev\tomcat\temp\hudson4704689285977025139.bat
  7.  
  8. C:\Users\lianying\.jenkins\jobs\test_django\workspace>py.test tests\test_sparking.py --junitxml=pytest_result.xml --cov=sparking --cov-report=xml
  9. ============================= test session starts =============================
  10. platform win32 -- Python 2.7.0, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
  11. rootdir: C:\Users\lianying\.jenkins\jobs\test_django\workspace, inifile:
  12. plugins: cov-2.2.1, html-1.8.1
  13. collected 8 items
  14.  
  15. tests\test_sparking.py ........
  16.  
  17. generated xml file: C:\Users\lianying\.jenkins\jobs\test_django\workspace\pytest_result.xml
  18. --------------- coverage: platform win32, python 2.7.0-final-0 ----------------
  19. Coverage XML written to file coverage.xml
  20. ========================== 8 passed in 0.11 seconds ===========================
  21.  
  22. C:\Users\lianying\.jenkins\jobs\test_django\workspace>exit 0
  23. [Cobertura] Publishing Cobertura coverage report...
  24. Publishing Cobertura coverage results...
  25. Cobertura coverage report found.
  26. Recording test results
  27. Finished: SUCCESS

报告截图:

PS:补充下在virtualenv下的执行

从第4步开始

4、构建 这里需要先安装pytest-html 和pytest-cov ,然后添加SHELL

  1. pip freeze > ./requirements.txt
  2. if [ ! -d "venv" ]; then
  3. virtualenv -p /usr/bin/python venv
  4. fi
  5.  
  6. . venv/bin/activate
  7. pip install -r requirements.txt
  8. cd sparking
  9. py.test tests/test_sparking.py --html=pytest_result.html --cov=sparking --cov-report=xml

这里使用了pytest-html生成的报告更好看一些

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

jenkins集成python的单元测试的更多相关文章

  1. Jenkins集成jacoco收集单元测试覆盖率

    Jenkins集成jacoco收集单元测试覆盖率 2020-02-28 目录 0 整体思路1 Jenkins创建JacocoIntegrateTestDemo项目2 配置源码管理3 配置Build4 ...

  2. jenkins集成python时出现"Non-ASCII character '\xe6' in file"错误解决方法

    我的问题: 使用python3.5,在Linux环境下手动执行python文件时不报错,但是用jenkins自动执行时就报"Non-ASCII character '\xe6' in fil ...

  3. jenkins集成python脚本

    Jenkins配置获取源码并构建 1. Jenkins系统设置--管理插件,搜索安装“GitLab”和“Git” 2. 新建任务,选择自由风格项目 3. 源码管理 git (1)Repository ...

  4. Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)

    使用jenkins+git+python脚本进行持续集成的接口测试,在jenkins平台,利用插件等,把管理代码的git仓库的代码更新下来进行持续接口测试,python进行开发测试脚本,git进行远程 ...

  5. jenkins 集成 redmine 账户验证的方案

    jenkins 集成 redmine 账户验证的方案 赖勇浩(http://laiyonghao.com) 动机 Jenkins 是最著名的持续集成工具,又因为它开源免费.插件众多,成为了许多团队做持 ...

  6. Jenkins构建Python项目提示:'python' 不是内部或外部命令,也不是可运行的程序

    问题描述: jenkin集成python项目,立即构建后,发现未执行成功,查看Console Output 提示:'Python' 不是内部或外部命令,也不是可运行的程序,如下图: 1.在 Windo ...

  7. Jenkins集成allure测试报告

    前言 Allure框架是一个功能强大的自动化测试报告工具,不仅支持多种编程语言,而且能够完美的与各种集成工具结合,包括Jenkins,TeamCity,Bamboo,Maven等等,因此受到了很多测试 ...

  8. DEVOPS技术实践_11:Jenkins集成Sonar

    前言 前面已经有介绍sonar的安装,简单应用,下面在简答的研究一下sonar和jenkins集成的简单使用,对于sonar的安装不做介绍 一 sonar的简单介绍 持续检查避免了低质量的代码,比如S ...

  9. Jenkins集成appium自动化测试(Windows篇)

    一,引入问题 自动化测试脚本绝大部分用于回归测试,这就需要制定执行策略,如每天.代码更新后.项目上线前定时执行,才能达到最好的效果,这时就需要进行Jenkins集成. 不像web UI自动化测试可以使 ...

随机推荐

  1. 常见网络摄像机的端口及RTSP地址

    海康威视默认IP地址:192.168.1.64/DHCP 用户名admin 密码自己设端口:“HTTP 端口”(默认为 80).“RTSP 端口”(默认为 554).“HTTPS 端 口”(默认 44 ...

  2. C++游戏服务器编程笔记 IP详解

    C++游戏服务器编程笔记 IP详解 IP详解 INTERNET的历史 上世纪60年底起源于美国 1992年,Internet上的主机超过了100万台 现在已经是现代文明人的必需品    TCP/IP的 ...

  3. python多任务——协程的使用

    使用yield完成多任务 import time def test1(): while True: print("--1--") time.sleep(0.5) yield Non ...

  4. Threadlocal线程本地变量理解

    转载:https://www.cnblogs.com/chengxiao/p/6152824.html 总结: 作用:ThreadLocal 线程本地变量,可用于分布式项目的日志追踪 用法:在切面中生 ...

  5. Thinkphp5.0快速入门笔记(3)

    学习来源与说明 https://www.kancloud.cn/thinkphp/thinkphp5_quickstart 测试与部署均在windows10下进行学习. 快速入门第三节 获取当前的请求 ...

  6. python网络爬虫(8)多媒体文件抽取

    目的 批量下载网页图片 导入库 urllib中的request中的urlretrieve方法,可以下载图片 lxml用于解析网页 requests用于获取网站信息 import urllib from ...

  7. JS语法学习笔记-菜鸟教程

    现在只需要<script></script>标签 javascript通常做法是放在<head>部分中,或者放在页面底部,这样可以把他们安置在同一位置,不会干扰页面 ...

  8. C语言字符串操作小结

    1)字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串s ...

  9. 06-spring框架—— Spring 与Web

    在 Web 项目中使用 Spring 框架,首先要解决在 web 层(这里指 Servlet)中获取到 Spring容器的问题.只要在 web 层获取到了 Spring 容器,便可从容器中获取到 Se ...

  10. 设计数据结构之LRU缓存

    leetcode 146. LRU Cache class LRUCache { private: struct Node { int key; int val; Node* prev; Node* ...