浅谈Tox之一

本文分享自天翼云开发者社区《浅谈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将发出警告。

相关推荐
冬天给予的预感1 小时前
DAY 54 Inception网络及其思考
网络·python·深度学习
钢铁男儿1 小时前
PyQt5高级界而控件(容器:装载更多的控件QDockWidget)
数据库·python·qt
亿牛云爬虫专家5 小时前
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
分布式·python·架构·kubernetes·爬虫代理·监测·采集
蹦蹦跳跳真可爱5899 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
nananaij9 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm
雷羿 LexChien9 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
敲键盘的小夜猫10 小时前
LLM复杂记忆存储-多会话隔离案例实战
人工智能·python·langchain
高压锅_122010 小时前
Django Channels WebSocket实时通信实战:从聊天功能到消息推送
python·websocket·django
胖达不服输12 小时前
「日拱一码」020 机器学习——数据处理
人工智能·python·机器学习·数据处理
吴佳浩12 小时前
Python入门指南-番外-LLM-Fingerprint(大语言模型指纹):从技术视角看AI开源生态的边界与挑战
python·llm·mcp