Skip to main content

virtualenv-based automation of test activities

Project description

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.

For more information and the repository please checkout:

Changelog (last 5 releases - full changelog)

2.8.1 (2017-09-04)

  • #p599: fix problems with implementation of #515.
    Substitutions from other sections were not made anymore if they were not in envlist. Thanks to Clark Boylan (@cboylan) for helping to get this fixed (#p597).

2.8.0 (2017-09-01)

  • #276: Remove easy_install from docs (TL;DR: use pip).
    Thanks Martin Andrysík (@sifuraz).
  • #301: Expand nested substitutions in tox.ini
    Thanks @vlaci. Thanks to Eli Collins (@eli-collins) for creating a reproducer.
  • #315: add –help and –version to helptox-quickstart
    Thanks @vlaci.
  • #326: Fix OSError ‘Not a directory’ when creating env on Jython 2.7.0.
    Thanks Nick Douma (@LordGaav).
  • #429: Forward MSYSTEM by default on Windows
    Thanks Marius Gedminas (@mgedmin) for reporting this.
  • #449: add multi platform example to the docs.
    Thanks Aleks Bunin (@sashkab) and @rndr.
  • #474: Start using setuptools_scm for tag based versioning.
  • #484: Renamed py.test to pytest throughout the project
    Thanks Slam (@3lnc).
  • #504: With -a: do not show additional environments header if there are none
    Thanks @rndr.
  • #515: Don’t require environment variables in test environments where they
    are not used. Thanks André Caron (@AndreLouisCaron).
  • #517: Forward NUMBER_OF_PROCESSORS by default on Windows to fix
    multiprocessor.cpu_count(). Thanks André Caron (@AndreLouisCaron).
  • #518: Forward USERPROFILE by default on Windows.
    Thanks André Caron (@AndreLouisCaron).
  • #p528: Fix some of the warnings displayed by pytest 3.1.0.
    Thanks Bruno Oliveira (@nicoddemus).
  • #p547: Add regression test for #137
    Thanks Martin Andrysík (@sifuraz).
  • #p553: Add an XFAIL test to reproduce upstream bug #203
    Thanks Bartolomé Sánchez Salado (@bartsanchez).
  • #p556: Report more meaningful errors on why virtualenv creation failed
    Thanks @vlaci. Also thanks to Igor Sadchenko (@igor-sadchenko) for pointing out a problem with that PR before it hit the masses :)
  • #575: Add announcement doc to end all announcement docs
    (using only CHANGELOG and Github issues since 2.5 already)
  • #p580: Do not ignore Sphinx warnings anymore
    Thanks Gábor Bernát (@gaborbernat).
  • #585: Expand documentation to explain pass through of flags from deps to pip
    (e.g. -rrequirements.txt, -cconstraints.txt) Thanks Alexander Loechel (@loechel).
  • #588: Run pytest wit xfail_strict and adapt affected tests.

2.7.0 (2017-04-02)

  • #p450: Stop after the first installdeps and first testenv create hooks succeed. This changes the default behaviour of tox_testenv_create and tox_testenv_install_deps to not execute other registered hooks when the first hook returns a result that is not None. Thanks Anthony Sottile (@asottile).

  • #271 and #464: Improve environment information for users.

    New command line parameter: -a show all defined environments - not just the ones defined in (or generated from) envlist.

    New verbosity settings for -l and -a: show user defined descriptions of the environments. This also works for generated environments from factors by concatenating factor descriptions into a complete description.

    Note that for backwards compatibility with scripts using the output of -l it’s output remains unchanged.

    Thanks Gábor Bernát (@gaborbernat).

  • #464: Fix incorrect egg-info location for modified package_dir in Thanks Selim Belhaouane (@selimb).

  • #431: Add ‘LANGUAGE’ to default passed environment variables. Thanks Paweł Adamczak (@pawalad).

  • #455: Add a Vagrantfile with a customized Arch Linux box for local testing. Thanks Oliver Bestwalter (@obestwalter).

  • #454: Revert #407, empty commands is not treated as an error. Thanks Anthony Sottile (@asottile).

  • #446: (infrastructure) Travis CI tests for tox now also run on OS X now. Thanks Jason R. Coombs (@jaraco).

2.6.0 (2017-02-04)

  • add “alwayscopy” config option to instruct virtualenv to always copy files instead of symlinking. Thanks Igor Duarte Cardoso (@igordcard).
  • pass setenv variables to during a usedevelop install. Thanks Eli Collins (@eli-collins).
  • replace all references to with readthedocs ones. Thanks Oliver Bestwalter (@obestwalter).
  • fix #323 by avoiding virtualenv14 is not used on py32 (although we don’t officially support py32). Thanks Jason R. Coombs (@jaraco).
  • add Python 3.6 to envlist and CI. Thanks Andrii Soldatenko (@andriisoldatenko).
  • fix glob resolution from TOX_TESTENV_PASSENV env variable Thanks Allan Feldman (@a-feld).

2.5.0 (2016-11-16)

  • slightly backward incompatible: fix #310: the {posargs} substitution now properly preserves the tox command line positional arguments. Positional arguments with spaces are now properly handled. NOTE: if your tox invocation previously used extra quoting for positional arguments to work around #310, you need to remove the quoting. Example: tox – “‘some string’” # has to now be written simply as tox – “some string” thanks holger krekel. You can set minversion = 2.5.0 in the [tox] section of tox.ini to make sure people using your tox.ini use the correct version.
  • fix #359: add COMSPEC to default passenv on windows. Thanks @anthrotype.
  • add support for py36 and py37 and add py36-dev and py37(nightly) to travis builds of tox. Thanks John Vandenberg.
  • fix #348: add py2 and py3 as default environments pointing to “python2” and “python3” basepython executables. Also fix #347 by updating the list of default envs in the tox basic example. Thanks Tobias McNulty.
  • make “-h” and “–help-ini” options work even if there is no tox.ini, thanks holger krekel.
  • add {:} substitution, which is replaced with os-specific path separator, thanks Lukasz Rogalski.
  • fix #305: downloadcache test env config is now ignored as pip-8 does caching by default. Thanks holger krekel.
  • output from install command in verbose (-vv) mode is now printed to console instead of being redirected to file, thanks Lukasz Rogalski
  • fix #399. Make sure {envtmpdir} is created if it doesn’t exist at the start of a testenvironment run. Thanks Manuel Jacob.
  • fix #316: Lack of commands key in ini file is now treated as an error. Reported virtualenv status is ‘nothing to do’ instead of ‘commands succeeded’, with relevant error message displayed. Thanks Lukasz Rogalski.

Release history Release notifications | RSS feed

This version


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for tox, version 2.8.1
Filename, size File type Python version Upload date Hashes
Filename, size tox-2.8.1.tar.gz (125.8 kB) File type Source Python version None Upload date Hashes View
Filename, size tox-2.8.1-py2.py3-none-any.whl (51.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page