wntrblm / nox

Flexible test automation for Python
https://nox.thea.codes
Apache License 2.0
1.33k stars 151 forks source link
automation python testing

logo

Nox

Nox License PyPI GitHub Code Style CI Downloads

Flexible test automation with Python

Overview

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:

import nox

@nox.session
def tests(session: nox.Session) -> None:
    session.install("pytest")
    session.run("pytest")

@nox.session
def lint(session: nox.Session) -> None:
    session.install("flake8")
    session.run("flake8", "--import-order-style", "google")

Installation

Nox is designed to be installed globally (not in a project virtual environment), the recommended way of doing this is via pipx, a tool designed to install python CLI programs whilst keeping them separate from your global or system python.

To install Nox with pipx:

pipx install nox

You can also use pip in your global python:

python3 -m pip install nox

You may want to user the user-site to avoid messing with your Global python install:

python3 -m pip install --user nox

Usage

List all sessions

nox -l/--list

Run all sessions

nox

Run a particular session

nox -s/--session test

Checkout the docs for more! 🎉

Contributing

Nox is an open source project and welcomes contributions of all kinds, checkout the contributing guide for help on how to help us out!

All contributors must follow the code of conduct and be nice to one another! 😃