Use tox for running tests locally.

See: http://wiki.openstack.org/ProjectTestingInterface

Tox can manage virtualenvs, and is currently doing so for running
tests in Jenkins.  It's just as, or more, useful for running tests
locally, so this starts the migration from the run_tests system to
tox.  The goal is to reduce duplicate testing infrastructure, and
get what's running locally on developer workstations as close to
what is run by Jenkins as possible.

This patch removes run_tests.py, and the scripts that manage .venv.
It makes run_tests.sh call tox to facilitate the transition for
developers used to typing "run_tests.sh".

Developers will need tox installed on their workstations.  It can
be installed from PyPI with "pip install tox".  run_tests.sh outputs
those instructions if tox is not present.

New facilities are available using tox directly, including:

  tox -e py26  # run tests under python 2.6
  tox -e py27  # run tests under python 2.7
  tox -e pep8  # run pep8 tests
  tox          # run all of the above
  tox -e venv foo  # run the command "foo" inside a virtualenv

The configuration of the openstack nose plugin is removed from
setup.cfg and added to the nosetests command line arguments in tox.
It is used when running tox from the command line, so the enhanced,
colorized output is visible to developers running the test suite
locally.  However, when Jenkins runs tox, the xunit plugin will be
used instead, providing output natively understood by jenkins which
is much more readable in that context.

Change-Id: Id678c2fb8a5a7d79c680d3d1f2f12141f73dc8a6
This commit is contained in:
James E. Blair
2012-04-26 17:40:10 +00:00
parent 3344eac545
commit ae58edcba7
7 changed files with 42 additions and 566 deletions
+9 -3
View File
@@ -1,4 +1,10 @@
#!/bin/bash
TOOLS=`dirname $0`
VENV=$TOOLS/../.venv
source $VENV/bin/activate && $@
command -v tox > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo 'This script requires "tox" to run.'
echo 'You can install it with "pip install tox".'
exit 1;
fi
tox -evenv -- $@