跳转到主要内容

运行匹配给定因子的tox测试环境

项目描述

tox-factor

CircleCI Appveyor codecov version python license

什么是tox-factor?

tox-factor可以根据因子的匹配来运行tox测试环境的子集。

好吧,但这实际上是什么意思?

以下是一个tox配置示例:

[tox]
envlist =
    py{35,36,37}-django{20,21,22}-{redis,memcached}

上述定义了18个测试环境,基于三个因子组 - Python版本、Django版本和缓存后端。虽然上述功能强大,但tox不提供根据这些因子的子集运行构建的方法。例如,运行所有Python 3.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模式是

  • 为每个tox测试环境定义一个CI作业。例如:

    tox -e py37-django20-redis

  • 为运行多个测试环境的公共环境定义一个CI作业。例如:

    tox -e py37-django20-redis,py37-django20-memcached,...

对于后一种情况,此插件简化了CI的维护,可以缩短为tox -f py37。此外,以下是上述tox配置的以下更新:

[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

用法详情

因素选项接受逗号分隔的列表(类似于-e选项)。

$ tox -f py27,py37 -l
py27-django111
py37-django21

或者,可以通过TOXFACTOR环境变量提供因素

$ TOXFACTOR=py27,py37 tox -l
py27-django111
py37-django21

因素也可以匹配非生成型环境名称。例如,给定以下tox配置

[tox]
envlist =
    py{35,36,37}-django20

[testenv:list]

以下将匹配

$ tox -f py37,lint -l
py37-django20
lint

因素总是被给定的toxenv覆盖。例如,在以下情况下,tox-factor不会执行任何操作

$ 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-Clause License

版权所有(c)2019,Ryan P Kilby。保留所有权利。

在不违反以下条件的情况下,允许以源代码和二进制形式重新分发和使用,无论是否修改

  • 源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。

  • 二进制形式的重新分发必须在文档和/或其他随分发提供的材料中复制上述版权声明、本条件列表和以下免责声明。

  • 未经事先书面许可,不得使用版权所有者或其贡献者的姓名来认可或推广由此软件衍生出的产品。

本软件由版权所有者和贡献者提供,“按原样”以及任何明示或暗示的保证,包括但不限于对适销性和针对特定目的的适用性的暗示保证均予以否认。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后果性的损害(包括但不限于替代商品或服务的采购;使用、数据或利润的丧失;或业务中断)承担责任,无论此类损害是否因使用本软件或因对本软件的使用可能性而引起,即使已通知此类损害的可能性。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

tox-factor-0.1.2.tar.gz (11.3 kB 查看哈希值)

上传时间: 源代码

构建分发

tox_factor-0.1.2-py2.py3-none-any.whl (9.3 kB 查看哈希值)

上传于 Python 2 Python 3

支持者