1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
<p align="center">
<img src="https://github.com/wntrblm/nox/raw/main/docs/_static/alice.png" alt="logo" width=50%>
</p>
# Nox
[](https://github.com/wntrblm/nox)
[](https://github.com/wntrblm/nox)
[](https://pypi.python.org/pypi/nox)
[](https://github.com/wntrblm/nox)
[](https://github.com/wntrblm/nox)
[](https://github.com/wntrblm/nox/actions?query=workflow%3ACI)
[](https://pepy.tech/project/nox)
*Flexible test automation with Python*
* **Documentation:** [https://nox.readthedocs.io](https://nox.readthedocs.io)
* **Source Code:** [https://github.com/wntrblm/nox](https://github.com/wntrblm/nox)
## 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:
```python
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][]:
```shell
pipx install nox
```
You can also use [pip][] in your global python:
```shell
python3 -m pip install nox
```
You may want to user the [user-site][] to avoid messing with your Global python install:
```shell
python3 -m pip install --user nox
```
## Usage
### List all sessions
```shell
nox -l/--list
```
### Run all sessions
```shell
nox
```
### Run a particular session
```shell
nox -s/--session test
```
Checkout the [docs](https://nox.readthedocs.io) for more! 🎉
## Contributing
Nox is an open source project and welcomes contributions of all kinds, checkout the [contributing guide](CONTRIBUTING.md) for help on how to help us out!
All contributors must follow the [code of conduct](CODE_OF_CONDUCT.md) and be nice to one another! 😃
[tox]: https://tox.readthedocs.io
[pipx]: https://pypa.github.io/pipx/
[pip]: https://pip.pypa.io/en/stable/
[user-site]: https://packaging.python.org/en/latest/tutorials/installing-packages/#installing-to-the-user-site
|