Welcome to the tox automation project¶
tox aims to automate and standardize testing in Python.  It is part
of a larger vision of easing the packaging, testing and release process
of Python software.
vision: standardize testing in Python - testing out of the box
What is tox?¶
tox is a generic virtualenv management and test command line tool you can use for:
- checking your package installs correctly with different Python versions and interpreters 
- running your tests in each of the environments, configuring your test tool of choice 
- acting as a frontend to Continuous Integration servers, greatly reducing boilerplate and merging CI and shell-based testing. 
- in a nutshell: - Installation: pip install tox - Supported Pythons: CPython 2.6-3.6, jython, pypy - Operating systems: Linux, Windows, macOS, Unix - License: MIT - development: https://github.com/tox-dev 
Basic example¶
First, install tox with pip install tox.
Then put basic information about your project and the test environments you
want your project to run in into a tox.ini file residing
right next to your setup.py file:
# content of: tox.ini , put in same dir as setup.py
[tox]
envlist = py26,py27
[testenv]
deps=pytest       # install pytest in the venvs
commands=pytest  # or 'nosetests' or ...
You can also try generating a tox.ini file automatically, by running
tox-quickstart and then answering a few simple questions.
To sdist-package, install and test your project against Python2.6 and Python2.7, just type:
tox
… and watch things happening (you must have python2.6 and python2.7 installed in your
environment otherwise you will see errors).  When you run tox a second time
you’ll note that it runs much faster because it keeps track of virtualenv details
and will not recreate or re-install dependencies.  You also might want to
checkout the Examples to get some more ideas.
Current features¶
- automation of tedious Python related test activities 
- test your Python package against many interpreter and dependency configs - automatic customizable (re)creation of virtualenv test environments
- installs your setup.pybased project into each virtual environment
- test-tool agnostic: runs pytest, nose or unittests in a uniform manner
 
- (new in 2.0) plugin system to modify tox execution with simple hooks. 
- uses pip and setuptools by default. Support for configuring the installer command through - install_command=ARGV.
- cross-Python compatible: CPython-2.6, 2.7, 3.2 and higher, Jython and pypy. 
- cross-platform: Windows and Unix style environments 
- integrates with continuous integration servers like Jenkins and helps you to avoid boilerplatish and platform-specific build-step hacks. 
- full interoperability with devpi: is integrated with and is used for testing in the devpi system, a versatile pypi index server and release managing tool. 
- driven by a simple ini-style config file 
- documented examples and configuration 
- concise reporting about tool invocations and configuration errors 
- professionally Paid professional support