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
nox
a command line tool that automates testing in multiple python environments, similar to tox
. It is considered by his creator like the descendant of tox.
Its main advantage over tox
for me is that you can take advantage of all the power of the python language in your automation process, but it has others cool features. Also it is used by some great projects like google-cloud-python or urllib3.
Nox works with the notion of sessions. A session is a callable decorated with nox.session taking a session argument that we use to perform various actions. The two main actions you will usually performed are install and run but there are others.
Projects that use Nox
- Bézier
- gapic-generator-python
- gdbgui
- Assistant
- SDK
- google-cloud-python
- google-resumable-media-python
- Hydra
- OmegaConf
- OpenCensus
- Python
- packaging.python.org
- pipx
- Salt
- Subpar
- Urllib3
- Zazo
Other useful projects
Nox is not the only tool of its kind. If Nox doesn’t quite fit your needs or you want to do more research, we recommend looking at these tools:
tox is the de-facto standard for managing multiple Python test environments, and is the direct spiritual ancestor to Nox.
Invoke is a general-purpose task execution library, similar to Make. Nox can be thought of as if Invoke were tailored specifically to Python testing, so Invoke is a great choice for scripts that need to encompass far more than Nox’s specialization.
Nox also exists due to the various patches and work contributed by the community