暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Openstack单元测试——Tox

云拾 2017-08-31
862

Openstack对项目代码的审查有严格的规范,其中之一就是对代码单元测试用例的要求,每次在修改代码以后顺手检查下单元测试的正确与否十分必要。


在本地运行Openstack的单元测试有两种途径:tox和run_tests.sh脚本,2015年以后大部分的Openstack项目都使用tox取代了原来的run_tests.sh方式,相比之下tox更加的智能和方便,很容易就可以上手使用。


相关概念

虚拟环境,就是在同一个主机上,模拟出多套python环境,每个环境中可以使用不同的Python版本,环境变量设置,第三方依赖包等等,而且环境之间互不影响,相互隔离,保证了每个环境的干净和独立,可以方便地在不同版本不同依赖之间切换,极大地提高了python开发的灵活性。


tox是一个通用的virtualenv管理和测试命令行工具,它可以:

  1. 保证指定的python版本、解释器及第三方依赖包正确地安装

  2. 在每个环境中使用配置的测试工具运行测试

  3. 作为持续集成服务器的前端,大大降低测试工作量


最典型的应用就测试在不同python版本下代码的兼容性,我们可以为python2.x,python3.x创建不同的虚拟环境,分别测试代码对不同版本的适用性;也可以在tox.ini中自定义虚拟环境与测试命令,完成除单元测试以外的功能,例如:testevn:pep8,代码格式检查;testenv:cover,测试覆盖率等。


Tox运行单元测试

使用pip安装tox:

[apt-get | yum] install python-pip

pip install tox


在clone下来的项目根目录配置文件tox.ini中可以找到虚拟环境的配置:

[tox]

envlist = py35,py27,pep8    #虚拟环境列表

[testenv]

deps = -r{toxinidir}/test-requirements.txt    #虚拟环境安装的依赖

commands = ostestr {posargs}    #运行的测试命令,{posargs}是tox命令中" -- "以后的字串,如"tox -- --opt1 ARG1”中的"--opt1 ARG1"


指定环境运行项目所有单元测试:

tox -e py27

运行pep8检查:

tox -e pep8

一次运行所有环境:

tox

只搭建环境不运行测试:

tox -e py27 --notest

查看帮助:

tox --help


第一次运行tox的时候会创建虚拟环境,下载安装依赖包,比较慢,以后再运行时只做检查更新就很快了。


参考资料

tox官方文档:http://tox.readthedocs.io/en/latest/


文章转载自云拾,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论