码迷,mamicode.com
首页 > 编程语言 > 详细

jenkins集成python的单元测试

时间:2016-06-08 15:56:47      阅读:1856      评论:0      收藏:0      [点我收藏+]

标签:

最近在研究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

 

jenkins集成python的单元测试

标签:

原文地址:http://www.cnblogs.com/sparkling-ly/p/5569937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!