写点什么

浅谈 Tox 之一

  • 2025-02-28
    北京
  • 本文字数:804 字

    阅读完需:约 3 分钟

本文分享自天翼云开发者社区《浅谈Tox之一》,作者:Moonriver

 

What is tox?

tox 是通用的 virtualenv 管理和测试命令行工具,可用于:  

  1. 使用不同的 Python 版本和解释器检查您的软件包是否正确安装

  2. 在每个环境中运行测试,配置您选择的测试工具

  3. 充当持续集成服务器的前端,大大减少了样板文件并合并了 CI 和基于 shell 的测试。

Basic example

首先,使用 pip install tox 安装 tox。 然后将项目以及测试环境的基本信息放入位于 setup.py 文件旁边的 tox.ini 文件中:


只需输入:tox,如上图 tox.ini 文件所示,即可对当前项目进行 sdist 打包,创建两个 Python2.7 和 Python3.6 的 virtualenv 环境,将 sdist 软件包安装到环境中,并在每个环境中进行测试。

System overview

tox 大致分为以下几个阶段:

1. 配置

2. 包装(可选)

3. 环境

4. 报告

配置->打包(可选)->环境->报告

1. 配置

加载 tox.ini 并将其与命令行和操作系统环境变量中的选项合并。

2. 打包(可选)

通过调用 python setup.py sdist 创建当前项目的源代码库。

3. 环境

对于每个 Tox 环境执行以下操作:

环境创建——默认情况下使用 virtualenv 创建一个新的环境。 tox 会使用环境名称(例如表示 Python 2.7 的 py27 和 basepython 配置值)和当前的操作系统 PATH 值来自动尝试查找有效的 Python 解释器版本。

install(可选)——安装 deps 配置部分中指定的环境依赖项,然后安装较早打包的源代码。 commands——以指定的顺序运行指定的命令。

4. 报告——打印出每种 tox 环境的结果报告:

____________________ summary ____________________

py27: commands succeeded

ERROR:   py36: commands failed

只有所有环境都成功运行了,tox 才会返回退出代码 0(成功)。

tox 将为您解决环境隔离问题:它将删除未通过 passenv 指定的所有操作系统环境变量。 此外,它还将更改 PATH 变量,以便您的命令在当前活动的 Tox 环境中首先解析。 通常,路径中的所有可执行文件都可以在命令中使用,但是如果没有通过 whitelist_externals 明确允许,tox 将发出警告。


用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
浅谈Tox之一_Python_天翼云开发者社区_InfoQ写作社区