Tox
What is tox
- test standardization and automation tool
- runs unit tests
- checks compatibility for multiple versions of python
- highly configurable
Installation
- 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