diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000000..b10a8654dd --- /dev/null +++ b/.coveragerc @@ -0,0 +1,7 @@ +[run] +branch = True +source = zuul +omit = tests/* + +[report] +ignore_errors = True diff --git a/.stestr.conf b/.stestr.conf new file mode 100644 index 0000000000..2978dacaaa --- /dev/null +++ b/.stestr.conf @@ -0,0 +1,3 @@ +[DEFAULT] +test_path=tests/unit +top_dir=./ diff --git a/.testr.conf b/.testr.conf deleted file mode 100644 index 7e8d028994..0000000000 --- a/.testr.conf +++ /dev/null @@ -1,4 +0,0 @@ -[DEFAULT] -test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} OS_LOG_CAPTURE=${OS_LOG_CAPTURE:-1} OS_LOG_DEFAULTS=${OS_LOG_DEFAULTS:-""} ${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./tests/unit} $LISTOPT $IDOPTION -test_id_option=--load-list $IDFILE -test_list_option=--list diff --git a/TESTING.rst b/TESTING.rst index 86301c74fd..24da82da9d 100644 --- a/TESTING.rst +++ b/TESTING.rst @@ -50,6 +50,7 @@ Run The Tests *Navigate to the project's root directory and execute*:: tox + Note: completing this command may take a long time (depends on system resources) also, you might not see any output until tox is complete. @@ -79,21 +80,20 @@ To run individual tests with tox:: tox -e -- path.to.module.Class.test -For example, to *run the basic Zuul test*:: +For example, to *run a single Zuul test*:: tox -e py35 -- tests.unit.test_scheduler.TestScheduler.test_jobs_executed To *run one test in the foreground* (after previously having run tox to set up the virtualenv):: - . .tox/py35/bin/activate - python -m testtools.run tests.unit.test_scheduler.TestScheduler.test_jobs_executed + .tox/py35/bin/stestr run -t tests.unit.test_scheduler.TestScheduler.test_jobs_executed List Failing Tests ------------------ .tox/py35/bin/activate - testr failing --list + stestr failing --list Hanging Tests ------------- @@ -102,7 +102,7 @@ The following will run each test in turn and print the name of the test as it is run:: . .tox/py35/bin/activate - testr run --subunit | subunit2pyunit + stestr run You can compare the output of that to:: @@ -111,10 +111,4 @@ You can compare the output of that to:: Need More Info? --------------- -More information about testr: https://wiki.openstack.org/wiki/Testr - -More information about nose: https://nose.readthedocs.org/en/latest/ - - -More information about testing OpenStack code can be found here: -https://wiki.openstack.org/wiki/Testing +More information about stestr: http://stestr.readthedocs.io/en/latest/ diff --git a/test-requirements.txt b/test-requirements.txt index b84b2d5d94..62653ed6da 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,8 +4,7 @@ coverage>=3.6 sphinx>=1.5.1,<1.6 sphinxcontrib-blockdiag>=1.1.0 fixtures>=0.3.14 -python-subunit -testrepository>=0.0.17 +stestr>=1.0.0 # Apache-2.0 testtools>=0.9.32 sphinxcontrib-programoutput sphinx-autodoc-typehints diff --git a/tox.ini b/tox.ini index feda2d5f56..b13693ef75 100644 --- a/tox.ini +++ b/tox.ini @@ -7,14 +7,18 @@ envlist = pep8,py35 basepython = python3 setenv = VIRTUAL_ENV={envdir} OS_TEST_TIMEOUT=150 + OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:1} + OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:1} + OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:1} + OS_LOG_DEFAULTS={env:OS_LOG_DEFAULTS:""} passenv = ZUUL_TEST_ROOT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE OS_LOG_DEFAULTS NODEPOOL_ZK_HOST usedevelop = True install_command = pip install {opts} {packages} whitelist_externals = bash deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt -commands = - python setup.py test --slowest --testr-args='{posargs}' +commands = stestr run {posargs} + stestr slowest [nodeenv] install_command = bash tools/pip.sh {opts} {packages} @@ -43,8 +47,13 @@ commands = [testenv:cover] install_command = {[nodeenv]install_command} +setenv = + {[testenv]setenv} commands = - python setup.py test --coverage + stestr run {posargs} + coverage combine + coverage html -d cover + coverage xml -o cover/coverage.xml [testenv:docs] commands = @@ -54,17 +63,13 @@ commands = commands = {posargs} [testenv:nodepool] -setenv = - OS_TEST_PATH = ./tests/nodepool install_command = {[nodeenv]install_command} -commands = python setup.py test --slowest --testr-args='--concurrency=1 {posargs}' +commands = stestr run --concurrency=1 --test-path ./tests/nodepool {posargs} [testenv:remote] -setenv = - OS_TEST_PATH = ./tests/remote +commands = stestr run --concurrency=1 --test-path ./tests/remote {posargs} passenv = ZUUL_TEST_ROOT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE OS_LOG_DEFAULTS ZUUL_REMOTE_IPV4 ZUUL_SSH_KEY NODEPOOL_ZK_HOST install_command = {[nodeenv]install_command} -commands = python setup.py test --slowest --testr-args='--concurrency=1 {posargs}' [flake8] # These are ignored intentionally in openstack-infra projects;