Switch to stestr
stestr is actively maintained. OpenStack is migrating to stestr, go ahead and follow suit. As part of this, shift the default values for STDOUT capture into the tox.ini file. This preserves the current behavior of tox doing capture and running tests directly not capturing. Remove the depend on python-subunit... stestr takes care of that for us. Change-Id: I90ae343a5db966f74e888bb98aab0bf39dcdd2cbchanges/82/536882/3
parent
35732351ca
commit
68e02466ce
|
@ -0,0 +1,7 @@
|
|||
[run]
|
||||
branch = True
|
||||
source = zuul
|
||||
omit = tests/*
|
||||
|
||||
[report]
|
||||
ignore_errors = True
|
|
@ -0,0 +1,3 @@
|
|||
[DEFAULT]
|
||||
test_path=tests/unit
|
||||
top_dir=./
|
|
@ -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
|
27
TESTING.rst
27
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.
|
||||
|
||||
|
@ -68,9 +69,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::
|
||||
|
||||
tox -e <env>
|
||||
so for example, *run the test suite in py26*::
|
||||
so for example, *run the test suite in py35*::
|
||||
|
||||
tox -e py26
|
||||
tox -e py35
|
||||
|
||||
Run One Test
|
||||
------------
|
||||
|
@ -79,20 +80,20 @@ To run individual tests with tox::
|
|||
|
||||
tox -e <env> -- path.to.module.Class.test
|
||||
|
||||
For example, to *run the basic Zuul test*::
|
||||
For example, to *run a single Zuul test*::
|
||||
|
||||
tox -e py27 -- tests.unit.test_scheduler.TestScheduler.test_jobs_executed
|
||||
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/py27/bin/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/py27/bin/activate
|
||||
testr failing --list
|
||||
.tox/py35/bin/activate
|
||||
stestr failing --list
|
||||
|
||||
Hanging Tests
|
||||
-------------
|
||||
|
@ -100,8 +101,8 @@ Hanging Tests
|
|||
The following will run each test in turn and print the name of the
|
||||
test as it is run::
|
||||
|
||||
. .tox/py27/bin/activate
|
||||
testr run --subunit | subunit2pyunit
|
||||
. .tox/py35/bin/activate
|
||||
stestr run
|
||||
|
||||
You can compare the output of that to::
|
||||
|
||||
|
@ -110,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/
|
||||
|
|
|
@ -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
|
||||
|
|
24
tox.ini
24
tox.ini
|
@ -7,13 +7,17 @@ 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
|
||||
usedevelop = True
|
||||
install_command = pip install {opts} {packages}
|
||||
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
|
||||
|
||||
[testenv:bindep]
|
||||
# Do not install any requirements. We want this to be fast and work even if
|
||||
|
@ -32,8 +36,14 @@ commands =
|
|||
mypy --ignore-missing-imports zuul
|
||||
|
||||
[testenv:cover]
|
||||
setenv =
|
||||
{[testenv]setenv}
|
||||
PYTHON=coverage run --source zuul --parallel-mode
|
||||
commands =
|
||||
python setup.py test --coverage
|
||||
stestr run {posargs}
|
||||
coverage combine
|
||||
coverage html -d cover
|
||||
coverage xml -o cover/coverage.xml
|
||||
|
||||
[testenv:docs]
|
||||
commands =
|
||||
|
@ -43,15 +53,11 @@ commands =
|
|||
commands = {posargs}
|
||||
|
||||
[testenv:nodepool]
|
||||
setenv =
|
||||
OS_TEST_PATH = ./tests/nodepool
|
||||
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
|
||||
commands = python setup.py test --slowest --testr-args='--concurrency=1 {posargs}'
|
||||
|
||||
[flake8]
|
||||
# These are ignored intentionally in openstack-infra projects;
|
||||
|
|
Loading…
Reference in New Issue