Revert "Switch to stestr"

There are several differences between this and testr which we
need to discuss.  Let's wait until after the v3 release so we
don't delay it further.

This reverts commit 68e02466ce.

Change-Id: I873145c15fd88fe752cb987d0892c146c35041d8
This commit is contained in:
James E. Blair 2018-03-21 07:49:15 -07:00
parent 883223fdb8
commit e56801f2e8
6 changed files with 31 additions and 37 deletions

View File

@ -1,7 +0,0 @@
[run]
branch = True
source = zuul
omit = tests/*
[report]
ignore_errors = True

View File

@ -1,3 +0,0 @@
[DEFAULT]
test_path=tests/unit
top_dir=./

4
.testr.conf Normal file
View File

@ -0,0 +1,4 @@
[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

View File

@ -50,7 +50,6 @@ Run The Tests
*Navigate to the project's root directory and execute*:: *Navigate to the project's root directory and execute*::
tox tox
Note: completing this command may take a long time (depends on system resources) Note: completing this command may take a long time (depends on system resources)
also, you might not see any output until tox is complete. also, you might not see any output until tox is complete.
@ -69,9 +68,9 @@ Tox will run your entire test suite in the environments specified in the project
To run the test suite in just one of the environments in envlist execute:: To run the test suite in just one of the environments in envlist execute::
tox -e <env> tox -e <env>
so for example, *run the test suite in py35*:: so for example, *run the test suite in py26*::
tox -e py35 tox -e py26
Run One Test Run One Test
------------ ------------
@ -80,20 +79,20 @@ To run individual tests with tox::
tox -e <env> -- path.to.module.Class.test tox -e <env> -- path.to.module.Class.test
For example, to *run a single Zuul test*:: For example, to *run the basic Zuul test*::
tox -e py35 -- tests.unit.test_scheduler.TestScheduler.test_jobs_executed tox -e py27 -- tests.unit.test_scheduler.TestScheduler.test_jobs_executed
To *run one test in the foreground* (after previously having run tox To *run one test in the foreground* (after previously having run tox
to set up the virtualenv):: to set up the virtualenv)::
.tox/py35/bin/stestr run -t tests.unit.test_scheduler.TestScheduler.test_jobs_executed .tox/py27/bin/python -m testtools.run tests.unit.test_scheduler.TestScheduler.test_jobs_executed
List Failing Tests List Failing Tests
------------------ ------------------
.tox/py35/bin/activate .tox/py27/bin/activate
stestr failing --list testr failing --list
Hanging Tests Hanging Tests
------------- -------------
@ -101,8 +100,8 @@ Hanging Tests
The following will run each test in turn and print the name of the The following will run each test in turn and print the name of the
test as it is run:: test as it is run::
. .tox/py35/bin/activate . .tox/py27/bin/activate
stestr run testr run --subunit | subunit2pyunit
You can compare the output of that to:: You can compare the output of that to::
@ -111,4 +110,10 @@ You can compare the output of that to::
Need More Info? Need More Info?
--------------- ---------------
More information about stestr: http://stestr.readthedocs.io/en/latest/ 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

View File

@ -4,7 +4,8 @@ coverage>=3.6
sphinx>=1.5.1,<1.6 sphinx>=1.5.1,<1.6
sphinxcontrib-blockdiag>=1.1.0 sphinxcontrib-blockdiag>=1.1.0
fixtures>=0.3.14 fixtures>=0.3.14
stestr>=1.0.0 # Apache-2.0 python-subunit
testrepository>=0.0.17
testtools>=0.9.32 testtools>=0.9.32
sphinxcontrib-programoutput sphinxcontrib-programoutput
sphinx-autodoc-typehints sphinx-autodoc-typehints

24
tox.ini
View File

@ -7,17 +7,13 @@ envlist = pep8,py35
basepython = python3 basepython = python3
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
OS_TEST_TIMEOUT=150 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 passenv = ZUUL_TEST_ROOT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE OS_LOG_DEFAULTS
usedevelop = True usedevelop = True
install_command = pip install {opts} {packages} install_command = pip install {opts} {packages}
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
commands = stestr run {posargs} commands =
stestr slowest python setup.py test --slowest --testr-args='{posargs}'
[testenv:bindep] [testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if # Do not install any requirements. We want this to be fast and work even if
@ -36,14 +32,8 @@ commands =
mypy --ignore-missing-imports zuul mypy --ignore-missing-imports zuul
[testenv:cover] [testenv:cover]
setenv =
{[testenv]setenv}
PYTHON=coverage run --source zuul --parallel-mode
commands = commands =
stestr run {posargs} python setup.py test --coverage
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:docs] [testenv:docs]
commands = commands =
@ -53,11 +43,15 @@ commands =
commands = {posargs} commands = {posargs}
[testenv:nodepool] [testenv:nodepool]
commands = stestr run --concurrency=1 --test-path ./tests/nodepool {posargs} setenv =
OS_TEST_PATH = ./tests/nodepool
commands = python setup.py test --slowest --testr-args='--concurrency=1 {posargs}'
[testenv:remote] [testenv:remote]
commands = stestr run --concurrency=1 --test-path ./tests/remote {posargs} setenv =
OS_TEST_PATH = ./tests/remote
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 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
commands = python setup.py test --slowest --testr-args='--concurrency=1 {posargs}'
[flake8] [flake8]
# These are ignored intentionally in openstack-infra projects; # These are ignored intentionally in openstack-infra projects;