运行符合给定因素的毒物测试
tox-factor的Python项目详细描述
毒性因子
什么是毒性因子?
tox factor允许基于因子匹配运行tox测试环境的子集。
好吧,但是实际上是什么意思?
采用以下毒性配置:
[tox]envlist= py{35,36,37}-django{20,21,22}-{redis,memcached}
上面基于三个因素组定义了18个测试环境-python 版本、django版本和缓存后端。虽然上面说的很有力, tox不提供基于这些因素子集运行构建的方法。 例如,运行所有Python3.7版本的调用将是:
$ tox -e py37-django20-redis,py37-django20-memcached,py37-django21-redis,py37-django21-memcached,py37-django22-redis,py37-django22-memcached
tox factor函数与-e <env name>
参数类似,只是它运行
与给定因子匹配的所有环境。六个py37
生成可以使用以下命令运行:
$ tox -f py37
除了在本地运行tox时易于使用外,这对于某些ci也是有用的 设置。例如,两种常见的tox-ci模式分别是:
为每个毒物测试环境定义一个ci作业。例如,
tox -e py37-django20-redis
为运行多个测试环境的公共环境定义CI作业。例如,
tox -e py37-django20-redis,py37-django20-memcached,...
对于后一种情况,这个插件简化了ci的维护,因为它可以
缩短为tox -f py37
。另外,对以上内容进行以下更新
毒性配置:
[tox]envlist= py{35,36,37}-django{20,21,22}-{redis,memcached} py{36,37,38}-django{30}-{redis,memcached}
通过使用tox factor,不必更新python 3.7构建,因为
新的py37-django30-*
环境将自动匹配。
验证匹配的测试环境
如果要验证实际运行的测试环境,请结合以下因素
与-l
标志匹配。这将显示所有匹配的测试环境。例如,
$ tox -f py37 -l py37-django20-redis py37-django20-memcached py37-django21-redis py37-django21-memcached py37-django22-redis py37-django22-memcached
使用详细信息
factor选项接受逗号分隔的列表(类似于-e
选项)。
$ tox -f py27,py37 -l py27-django111 py37-django21
或者,可以通过TOXFACTOR
环境变量提供因子:
$ TOXFACTOR=py27,py37 tox -l py27-django111 py37-django21
因子也可以匹配非生成环境名称。例如,给定 以下毒物配置:
[tox]envlist= py{35,36,37}-django20[testenv:list]
则以下内容将匹配:
$ tox -f py37,lint -l py37-django20 lint
因子总是被给定的toxenv
所取代。例如,毒性因子
在下列情况下为NOOP:
$ tox -f py37 -e py35-django21 -l py35-django21 $ TOXENV=py35-django21 tox -f py37 -l py35-django21
因子不支持部分匹配。tox -f py3
与py37
不匹配。
然而,因素可能匹配不同的破折号分隔部分。假设如下:
[tox]envlist= py{35,36,37}-django{20,21,22}-{redis,memcached}
然后tox -f py37-redis
将匹配:
py37-django20-redis
py37-django21-redis
py37-django22-redis
释放过程
- 更新更改日志
- 在setup.py中更新包版本
- 为版本创建git标记
- 将版本上载到PYPI测试服务器
- 将版本上载到正式的pypi服务器
$ pip install -U pip setuptools wheel twine
$ rm -rf dist/ build/
$ python setup.py sdist bdist_wheel
$ twine upload -r test dist/*
$ twine upload dist/*
谢谢
这段代码主要基于@ryanhiebert在tox-travis中所做的工作。 如果没有他的努力,写作和 测试这个包。
许可证
见:LICENSE
BSD 3条款许可证
版权所有(c)2019,Ryan P Kilby 保留所有权利。
以源和二进制形式重新分配和使用,有无 如果满足以下条件,则允许修改:
重新发布源代码必须保留上述版权声明 条件列表和以下免责声明。
二进制形式的再分配必须复制上述版权声明, 文件中的条件列表和以下免责声明 和/或分发时提供的其他材料。
无论是版权所有者的名字还是 贡献者可用于支持或推广来自 本软件未经事先书面许可。
本软件由版权所有者和贡献者“按原样”提供。 以及任何明示或默示保证,包括但不限于 默示保证适销性和特定用途的保证 否认。无论如何一著作权人或者贡献者应当承担责任 任何直接的,间接的,偶然的,特殊的,例子的,或结果的 数据(包括但不限于采购或替代货物或 服务;损失或使用、数据或利润;或营业中断) 根据任何责任理论,无论是在合同中,严格责任, 或因使用而引起的侵权行为(包括疏忽或其他) 或者这个软件,即使被告知或者有可能或者这样的损坏。