diff options
author | Monty Taylor <mordred@inaugust.com> | 2012-12-27 15:26:50 -0800 |
---|---|---|
committer | Monty Taylor <mordred@inaugust.com> | 2013-01-18 16:13:27 -0500 |
commit | bfeffb63667b796999997acf43be395d31b6a184 (patch) | |
tree | 03a4d4ea649f4a0c8373830d06023ea5a3dfa660 | |
parent | 1aa712eaf224efcb575dd76c546adce810b1b2f4 (diff) | |
download | python-swiftclient-bfeffb63667b796999997acf43be395d31b6a184.tar.gz |
Use testr instead of nose.
nose is invasive and can sometimes alter the outcome of a test run. testr,
on the other hand, keeps a distinction between running tests and displaying
results of the test runs. Additionally, it supports the stock python unittest
protocol.
Even better, testr supports parallel test running, which makes things faster,
and a command "testr run --failing" which will just re-run the latest failing
tests (often something one wants to do in iterative dev)
Part of blueprint grizzly-testtools
Change-Id: I0b3f1bcb5d4ff59c65eb3219b30a9e64f54d70bd
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | .testr.conf | 4 | ||||
-rwxr-xr-x | .unittests | 7 | ||||
-rw-r--r-- | setup.cfg | 9 | ||||
-rw-r--r-- | setup.py | 1 | ||||
-rw-r--r-- | tools/test-requires | 8 | ||||
-rw-r--r-- | tox.ini | 29 |
7 files changed, 19 insertions, 41 deletions
@@ -6,6 +6,8 @@ dist/ *.py[co] .DS_Store *.log +.testrepository +subunit.log build swiftclient/versioninfo .autogenerated diff --git a/.testr.conf b/.testr.conf new file mode 100644 index 0000000..081907d --- /dev/null +++ b/.testr.conf @@ -0,0 +1,4 @@ +[DEFAULT] +test_command=${PYTHON:-python} -m subunit.run discover -t ./ ./tests $LISTOPT $IDOPTION +test_id_option=--load-list $IDFILE +test_list_option=--list @@ -1,7 +1,8 @@ #!/bin/bash set -e -nosetests --exe --with-coverage --cover-package swiftclient --cover-erase $@ -rvalue=$? +python setup.py testr --coverage +RET=$? +coverage report rm -f .coverage -exit $rvalue +exit $RET @@ -1,12 +1,3 @@ -[nosetests] -cover-package = swiftclient -cover-html = true -cover-erase = true -cover-inclusive = true -verbosity=2 -detailed-errors=1 -where = tests - [build_sphinx] source-dir = doc/source build-dir = doc/build @@ -54,7 +54,6 @@ setuptools.setup( 'Programming Language :: Python :: 2.6', 'Environment :: No Input/Output (Daemon)', ], - test_suite='nose.collector', scripts=[ 'bin/swift', ], diff --git a/tools/test-requires b/tools/test-requires index eaaf9eb..ea2ca29 100644 --- a/tools/test-requires +++ b/tools/test-requires @@ -1,12 +1,10 @@ distribute>=0.6.24 +coverage +discover eventlet -nose -nose-exclude -nosehtmloutput -nosexcover -openstack.nose_plugin pep8==1.3 python-keystoneclient sphinx>=1.1.2 +testrepository>=0.0.13 testtools>=0.9.22 @@ -3,14 +3,13 @@ envlist = py26,py27,pep8 [testenv] setenv = VIRTUAL_ENV={envdir} - NOSE_WITH_OPENSTACK=1 - NOSE_OPENSTACK_COLOR=1 - NOSE_OPENSTACK_RED=0.05 - NOSE_OPENSTACK_YELLOW=0.025 - NOSE_OPENSTACK_SHOW_ELAPSED=1 + LANG=en_US.UTF-8 + LANGUAGE=en_US:en + LC_ALL=C + deps = -r{toxinidir}/tools/pip-requires -r{toxinidir}/tools/test-requires -commands = nosetests +commands = python setup.py testr --testr-args="{posargs}" [testenv:pep8] deps = pep8 @@ -20,23 +19,7 @@ commands = pep8 --repeat --show-source --exclude=openstack swiftclient setup.py commands = {posargs} [testenv:cover] -commands = nosetests --cover-erase --cover-package=swiftclient --with-xcoverage +commands = python setup.py testr --coverage [tox:jenkins] downloadcache = ~/cache/pip - -[testenv:jenkins26] -basepython = python2.6 -setenv = NOSE_WITH_XUNIT=1 - -[testenv:jenkins27] -basepython = python2.7 -setenv = NOSE_WITH_XUNIT=1 - -[testenv:jenkinscover] -setenv = NOSE_WITH_XUNIT=1 -commands = nosetests --cover-erase --cover-package=swiftclient --with-xcoverage - -[testenv:jenkinsvenv] -setenv = NOSE_WITH_XUNIT=1 -commands = {posargs} |