Merge "Switch to stestr"

This commit is contained in:
Zuul 2018-03-21 07:14:41 +00:00 committed by Gerrit Code Review
commit 883223fdb8
6 changed files with 37 additions and 31 deletions

7
.coveragerc Normal file
View File

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

3
.stestr.conf Normal file
View File

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

View File

@ -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

View File

@ -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/

View File

@ -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
View File

@ -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;