浅谈 Tox 之二
本文分享自天翼云开发者社区《浅谈Tox之二》,作者:Moonriver
1. 配置
加载 tox.ini 并将其与命令行和操作系统环境变量中的选项合并。
2. 包装(可选)
通过调用 python setup.py sdist 创建当前项目的源代码版本库。 注意对于此操作,Python 环境将与安装 tox 时的相同(因此需要确保 tox 包含构建依赖项)。对于没有 setup.py 的应用程序项目,跳过此步骤。

rally_openstack/tox.ini
minversion 定义运行所需的最低版本。
skipsdist = false(true | false) 指示是否执行打包操作的标志。当将 tox 用于应用程序而不是库时,设置为 true。
envlist(逗号分隔值) 确定要使用 tox 的环境列表是按以下顺序进行的(如果找到了,则不再进行任何查找)
3. 环境
环境创建——创建一个新的环境,默认情况下使用 virtualenv。 tox 会使用环境名称(例如表示 Python 2.7 的 py27 和 basepython 配置值)和当前的操作系统 PATH 值来自动尝试查找有效的 Python 解释器版本。
install(可选)——安装 deps 配置部分中指定的环境依赖项,然后安装较早打包的源代码。
commands——以指定的顺序运行指定的命令。

测试环境由以下方式定义:
[testenv:NAME]
commands = ... testenv 默认部分:
[testenv]
commands = ...
extras(MULTI-LINE-LIST)
与 sdist 一起安装或进行开发安装的“附加”列表。
setenv(MULTI-LINE-LIST)
每行包含一个 NAME = VALUE 环境变量设置,该设置将用于所有测试命令调用以及将 sdist 软件包安装到虚拟环境中。
PYTHONHASHSEED 的特殊处理
默认情况下,tox 将测试命令的 PYTHONHASHSEED 设置为调用 tox 时生成的随机整数。可以在 tox.ini 中覆盖每个测试环境的哈希种子值。 whitelist_externals(MULTI-LINE-LIST)
将非 virtualenv 命令列入白名单,避免警告。
deps(MULTI-LINE-LIST)
在项目创建前安装到虚拟环境中的环境依赖项。
install_command=python -m pip install {opts} {packages}(ARGV)
将软件包安装到虚拟环境中; 被测软件包及其依赖项(由 deps 定义)。
usedevelop=false(true|false)
使用“setup.py develop”以开发模式安装当前软件包,而不是从 sdist 安装。
commands(ARGVLIST)
用于测试的命令。每行被解释为一个命令,命令将按顺序逐个执行,直到其中之一失败(它们的退出代码为非零)或全部成功为止。注意:虚拟环境的二进制路径(位于其中的 bin 文件夹)位于 os PATH 之前。
basepython(NAME-OR-PATH)
用于创建虚拟环境的 Python 解释器的名称或路径,确定将创建虚拟隔离环境的 python。
passenv(SPACE-SEPARATED-GLOBNAMES)
执行测试命令时,应将环境变量通配符名称列表从 tox 调用环境复制到测试环境。如果在 tox 调用环境中不存在指定的环境变量,则将其忽略。
评论