Stay Hungry,Stay Foolish!

tox -- Command line driven CI frontend and development task automation tool.

tox

https://github.com/tox-dev/tox

Command line driven CI frontend and development task automation tool.

功能特性:

  1. 子任务环境隔离
  2. 自动化任务执行
  3. 构建
  4. 测试
  5. 发布

At its core tox provides a convenient way to run arbitrary commands in isolated environments to serve as a single entry point for build, test and release activities.

 

开源项目样例:

https://github.com/eightBEC/fastapi-ml-skeleton

 

How it works

https://tox.wiki/en/latest/index.html#

tox creates virtual environments for all configured so-called testenvs, it then installs the project and other necessary dependencies and runs the configured set of commands. See system overview for more details.

 

使用tox后的优点

https://www.asapdevelopers.com/three-python-tools-automate-testing/#:~:text=Similarly%20to%20tox%2C%20Nox%20is%20a%20command-line%20tool,through%20a%20noxfile.py%20file%20within%20your%20project%E2%80%99s%20directory.

 

 

 

Multiple Python Version Example

https://christophergs.com/python/2020/04/12/python-tox-why-use-it-and-tutorial/#:~:text=%20tox%20makes%20it%20easy%20to%3A%20%201,not%20pass%20any%20evars%20from%20the...%20More%20

[tox]
envlist = py37,py27
skipsdist = true

[testenv]
deps = pytest
commands = pytest

 

Python Packaging Example

https://christophergs.com/python/2020/04/12/python-tox-why-use-it-and-tutorial/#packaging

If we decide to publish our squarer as a library (the world can’t live without this tool!), then we can unleash the full power tox. If we turn to the “packaging” directory of the example repo, we find the following directory structure:

└── packaging
    ├── setup.py
    ├── squarer
    │   ├── __init__.py
    │   ├── ml_squarer.py
    │   └── squarer.py
    ├── tests
    │   ├── __init__.py
    │   ├── test_ml_squarer.py
    │   └── test_squarer.py
    └── tox.ini

 

Alternative - Nox

https://nox.thea.codes/en/stable/index.html#:~:text=nox%20is%20a%20command-line%20tool%20that%20automates%20testing,via%20a%20noxfile.py%20file%20in%20your%20project%E2%80%99s%20directory.

https://zhuanlan.zhihu.com/p/102745306

nox is a command-line tool that automates testing in multiple Python environments, similar to tox. Unlike tox, Nox uses a standard Python file for configuration.

Projects that use Nox

Nox is lucky to have several wonderful projects that use it and provide feedback and contributions.

 

posted @ 2022-08-12 14:34  lightsong  阅读(87)  评论(0编辑  收藏  举报
Life Is Short, We Need Ship To Travel