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、构建

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来保证环境的纯净,这里面我没有写,因为是window是环境,电脑卡也没有启vmvare来启虚机试,

方法1)Excute Shell, 先安装virtualenv,然后创建环境virtualenv test

2)test/Scripts/activate

3) pip 需要的包

4) 执行py.test tests\test_sparking.py --junitxml=pytest_result.xml --cov=sparking --cov-report=xml

时间: 2024-08-04 15:02:34

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

用jenkins集成Python的自动化程序

在服务器上需要安装jenkins和Python 打开jenkins新建一个自由风格的项目,命名为PythonAutoTest 因为代码是用svn管理的,所以配置源码管理为SVN[jenkins在构建项目的时候会自动jenkins的安装目录下的workspace中生成以项目名称命名的文件夹,并将代码下载到此文件夹中] 新增构建步骤 这个步骤类似于我们在服务器上打开cmd窗口运行命令行 1)配环境变量,其实我已经在服务器系统环境变量Path中添加过过Python的路径不知道为什么没有生效,在此处重新

Jenkins集成源码静态分析工具

1.static code analysis插件说明 Jenkins提供了插件"static code analysis",该插件搜集不同的分析结果,并集合显示出来. 实际上,我们可以认为static code analysi和FindBugs等插件组成了一个静态分析代码的套件.仅仅安装static code analysis是不够的,还需要安装其他插件(如FindBugs),才能正确工作. 2.static code analysis支持哪些插件? 官方文档:https://wiki

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

问题描述: jenkin集成python项目,立即构建后,发现未执行成功,查看Console Output 提示:'Python' 不是内部或外部命令,也不是可运行的程序,如下图: 1.在 Windows 提示符下运行是没有问题. 2.把Jenkins项目配置中 python main.py   修改成python可执行文件全路径:D:\Python35\python.exe main.py ,再次构建也没有问题. 这是因为 Jenkins 缺少环境配置. 解决方法: 配置构建执行状态: 1.回

Jenkins集成allure测试报告

前言 Allure框架是一个功能强大的自动化测试报告工具,不仅支持多种编程语言,而且能够完美的与各种集成工具结合,包括Jenkins,TeamCity,Bamboo,Maven等等,因此受到了很多测试人员的青睐,那么今天我们就简单的来讲解一下Jenkins中如何集成allure测试报告 Allure插件安装 Jenkins集成allure测试报告,需要安装Allure插件作为支持 1.打开Jenkins,首页点击[Manage Jenkins] 2.选择[Manage Plugins] 3.选择

DEVOPS技术实践_11:Jenkins集成Sonar

前言 前面已经有介绍sonar的安装,简单应用,下面在简答的研究一下sonar和jenkins集成的简单使用,对于sonar的安装不做介绍 一 sonar的简单介绍 持续检查避免了低质量的代码,比如SonarQube工具就能够帮助我们完成此项.每次代码提交后,在代码上就会执行代码分析. 分析是基于代码分析工具中定义的一些规则,如果代码通过了错误阀值,那么它会允许到生命周期的下一步,如果超过了设定的阀值,那么直接返回错误. SonarQube是代码质量管理工具,允许团队去管理,追踪和改善他们的源代

jmeter+jenkins集成化案例(下)

git+jenkins+jmeter+Python集成——接口并发测试: git完成脚本修改增加操作,jmeter作为脚本编辑器完成业务需求,jenkins负责将脚本推送到服务器上并执行相应shell指令完成对应性能测试并统计出结果,Python脚本负责将最终的结果发送邮件并通知到钉钉. 1.自动化测试框架流程 脚本:jmeter脚本,Python代码等等 2.软件或者工具 Git仓库:gogs.GitHub.gitlib.码云等:其他工具例如SVN 构建工具:Jenkins,Hudson 脚本

Jenkins集成--样式都去哪儿啦?

1.博文背景 Jenkins持续集成,一路走来坎坷不断,但是从每个坎坷都能收获很多.上篇博文<Jenkins集成--未找到导入项目>中拿来给大家做演示的mvc程序在VS中运行后效果图如下图所示: 但是在Jenkins上集成并在IIS上发布成功后,运行浏览如下所示: 2.问题 很明显,没有样式,这是绝对不行的!经过查看源码后在控制台给出如下提示: Resource interpreted as Stylesheet but transferredwith MIME type text/plain

工程脚本插件方案 - c集成Python基础篇(VC++嵌入Python)

序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中根据需求会拆分的更细.外部的表现形式就是一个核心动态库,带着一堆业务业务动态库.通过一个调度程序把这些链接起来,外加一堆配置文件,就形成一个完成的项目. 这种模式在一个团队开发中,工作职责比较容易划分.制定API接口后,开发工作基本可以并行实现,包括后期的功能测试(白盒.黑盒).不管工程使用什么语言

Jmeter测试报告可视化(Excel, html以及jenkins集成)

做性能测试通常在none GUI的命令行模式下运行Jmeter. 例如: jmeter -n -t /opt/las/JMeter/TestPlan/test.jmx -l /opt/las/JMeter/TestReport/test.jtl jtl里面的内容可以通过修改jmeter bin目录下的jmeter.properties设置,例如: jmeter.save.saveservice.response_code=true jmeter.save.saveservice.response