What is tox

- test standardization and automation tool
- runs unit tests
- checks compatibility for multiple versions of python
- highly configurable


- pip install tox
- (or "pipsi install tox" if you prefer to be fancy)

How do you use tox

- Shell Command "tox" from package root folder containing "tox.ini"
- tox-quickstart (for seting up tox in a project)
- tox.ini - for storing tox configurations

Why is this awesome?

- simple, configurable test runner
- can run tests against current, previous and future pythons - super helpful when considering an upgrade
- configuration file for all settings - this helps streamline automation

But it’s so fancy

- Creates a new virtual environment per python version
- installing packages to that env
- running available tests
- all happening under the hood - based on package configuration
- no cleanup or build work - tox does this for you

Other cool things tox does

- whitelist non-virtualenv commands (make, bash, etc...)
- supports installing from multiple PyPI servers
- forced re-build of virtual environments
- setting environment variables
- spreading tests to multiple CPUs
- integration with sphinx documentation checks