设为首页 收藏本站
查看: 1191|回复: 0

[经验分享] jenkins集成python的单元测试

[复制链接]

尚未签到

发表于 2018-1-6 22:29:55 | 显示全部楼层 |阅读模式
  最近在研究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生成的报告更好看一些

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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432402-1-1.html 上篇帖子: 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 下篇帖子: jenkins jmeter持续集成批处理jmx脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表