CheckOps home

Tools directory

N

CheckOps

Nox

Nox is an Apache-2.0 Python test automation tool that defines sessions in a Python file (noxfile.py), running tests across interpreters and dependency sets in isolated environments.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

Nox offers flexible test automation for Python. Where tox uses declarative configuration files, Nox uses a noxfile.py, where each session is a Python function decorated with @nox.session. That makes conditional logic, loops and shared helpers natural, which many teams find easier to maintain for complex workflows.

Inside a session you call session.install(...) to add dependencies and session.run(...) to execute commands. Sessions can be parameterised by Python version (python=["3.11", "3.12"]) or with @nox.parametrize for dependency matrices. nox -s tests runs one session, nox -l lists sessions, and -R/--reuse-existing-virtualenvs speeds up repeated runs. Nox supports several virtual environment backends, including virtualenv, venv, conda and uv. It uses calendar versioning; release 2026.10.20 came out on 20 October 2026. The project is maintained under the wntrblm organisation.

The source code is at wntrblm/nox on GitHub under the Apache-2.0 licence, with about 1,600 stars; the most recent commit was on 6 November 2026.

Because sessions are code, it is easy to share helper functions between sessions or skip work based on environment variables.

Features

  1. Python configuration: Sessions are plain Python functions.
  2. Parameterisation: Run sessions across interpreters and dependency versions.
  3. Multiple backends: virtualenv, venv, conda and uv.
  4. Session selection: Run, list and tag sessions from the CLI.

Pros

  1. Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
  2. Actively maintained: The repository had commits as recent as 6 November 2026.

Cons

  1. More code to maintain: Flexibility means noxfiles can grow complex.
  2. Smaller plugin ecosystem: Fewer plugins than tox.
# noxfile.py
import nox

@nox.session(python=["3.11", "3.12", "3.13"])
def tests(session):
    session.install("-e", ".", "pytest", "coverage")
    session.run("coverage", "run", "-m", "pytest", *session.posargs)

@nox.session
def lint(session):
    session.install("ruff")
    session.run("ruff", "check", "src", "tests")
pip install nox
nox -s tests
nox -s lint

Resources:

Pricing

Nox is free and open source under the Apache-2.0 licence.

  1. Python teams who prefer code over configuration for test automation.
  2. Projects with complex, conditional test workflows.

Conclusion

Nox brings the power of Python to test automation, a strong alternative to tox when flexibility matters.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with Nox side by side.