Python 任务自动化工具 tox 教程( 二 )


Python 任务自动化工具 tox 教程

文章插图
 
tox 开放了挺多的 API 接口,方便其他人定制开发插件 。
Python 任务自动化工具 tox 教程

文章插图
 
4、tox 的工作流程接下来看看 tox 是怎么运作的:
Python 任务自动化工具 tox 教程

文章插图
 
其工作流程中主要的环节有:
  • 配置(从figuration):加载配置文件(如 tox.ini),解析命令行参数,读取系统环境变量等
  • 打包(packaging):可选的,对于带有 setup.py 文件的项目,可以在这步去生成它的源发行版
  • 创建虚拟环境:默认使用 virtualenv 来创建虚拟环境,并根据配置项中的“deps”安装所需的依赖项,然后执行配置好的命令(commands)
  • 报告(report):汇总所有虚拟环境的运行结果并罗列出来
5、小结tox 本身定位是一个测试工具,它试图令 Pytho 测试工作变得自动化、标准化与流程化 。但跟 unittest 和 pytest 这些测试框架不同,它作用的是代码层面之外的事情,是一种项目级的工具 。因此,它需要跟这些测试框架相结合,或者同时处理多种自动化任务(如跑 pep8、测代码覆盖率、生成文档等等),这样才能更好地发挥它的价值 。
它的一大特色在于创建/管理虚拟环境,但这只是为了方便测试而使用的手段,因此相比其它可管理虚拟环境的工具,如 VirtualenvwrApper、conda、pipenv、poetry,它在某些方面就存在着不足 。
tox 还有强大的可配置性与丰富的插件支持,这使得它在运用上具有很大的可能性与自由度 。因此,不少忠实开发者仍在持续地在使用它,比如,我刚翻译好的系列文章的作者就是它的维护者之一 。
Python 任务自动化工具 tox 教程

文章插图
 
最后还需补充一点,tox 使用配置文件作驱动,但配置文件还是挺繁琐的,因此有人开发了一个跟 tox 相似的nox,使用 Python 文件来做配置 。这个项目也很受欢迎,吸引了很多项目投入其门下,例如 pipx、urllib3、Salt 等等 。对该项目感兴趣的话,请查看:https://nox.thea.codes/en/stable/
 
公众号:Python猫主要分享 Python基础、Python进阶、Python哲学、编程语言、书籍推荐等内容,另外还有官方 PEP 翻译与优质外文的翻译,值得关注一同学习 。




推荐阅读