10326c7dc2
As per discussion on ML[1], we do not have any job which runs only slow tests. This commit provide a separate job which run only slow tests which can be API or scenario tests. Further this job can be used cross projects like nova, cinder, neutron. Why we need separate job for slow tests: - slow tests create gate issues on job timeout which we observed\ during Rocky cycle[2]. Not to effect gate let's start them executing on separate job. Why to convert the tempest-scenario-all job - tempest-scenario-all job was created to run the slow tests along with other scenario tests. But slow tests can be API tests[3] and mixing them with other scenario or API tests is not good idea. - All scenario tests excluding slow tests are run as part of tempest-full job so let's not run scenario tests twice on gate. [1] http://lists.openstack.org/pipermail/openstack-dev/2018-July/132527.html [2] https://bugs.launchpad.net/tempest/+bug/1783405 [3] https://ethercalc.openstack.org/dorupfz6s9qt Change-Id: I5b1d3041c0140bea11705ad287f1472e74aacb5c
231 lines
7.4 KiB
INI
231 lines
7.4 KiB
INI
[tox]
|
|
envlist = pep8,py35,py27,pip-check-reqs
|
|
minversion = 2.3.1
|
|
skipsdist = True
|
|
|
|
[tempestenv]
|
|
sitepackages = False
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
OS_TEST_PATH=./tempest/test_discover
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-r{toxinidir}/requirements.txt
|
|
|
|
[testenv]
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
OS_LOG_CAPTURE=1
|
|
OS_STDOUT_CAPTURE=1
|
|
OS_STDERR_CAPTURE=1
|
|
OS_TEST_TIMEOUT=160
|
|
PYTHONWARNINGS=default::DeprecationWarning,ignore::DeprecationWarning:distutils,ignore::DeprecationWarning:site
|
|
passenv = OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_TEST_TIMEOUT OS_TEST_LOCK_PATH TEMPEST_CONFIG TEMPEST_CONFIG_DIR http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY ZUUL_CACHE_DIR REQUIREMENTS_PIP_LOCATION GENERATE_TEMPEST_PLUGIN_LIST
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
whitelist_externals = *
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
stestr --test-path ./tempest/tests run {posargs}
|
|
|
|
[testenv:genconfig]
|
|
commands = oslo-config-generator --config-file tempest/cmd/config-generator.tempest.conf
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source tempest --parallel-mode
|
|
commands =
|
|
coverage erase
|
|
find . -type f -name "*.pyc" -delete
|
|
stestr --test-path ./tempest/tests run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
[testenv:all]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
# 'all' includes slow tests
|
|
setenv =
|
|
{[tempestenv]setenv}
|
|
OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
|
|
deps = {[tempestenv]deps}
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --regex {posargs}
|
|
|
|
[testenv:all-plugin]
|
|
sitepackages = True
|
|
# 'all' includes slow tests
|
|
setenv =
|
|
{[tempestenv]setenv}
|
|
OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
|
|
deps = {[tempestenv]deps}
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --regex {posargs}
|
|
|
|
[testenv:full]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
setenv = {[tempestenv]setenv}
|
|
deps = {[tempestenv]deps}
|
|
# The regex below is used to select which tests to run and exclude the slow tag:
|
|
# See the testrepository bug: https://bugs.launchpad.net/testrepository/+bug/1208610
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' {posargs}
|
|
tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' {posargs}
|
|
|
|
[testenv:full-parallel]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
setenv = {[tempestenv]setenv}
|
|
deps = {[tempestenv]deps}
|
|
# The regex below is used to select all tempest scenario and including the non slow api tests
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --regex '(^tempest\.scenario.*)|(?!.*\[.*\bslow\b.*\])(^tempest\.api)' {posargs}
|
|
|
|
[testenv:full-serial]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
setenv = {[tempestenv]setenv}
|
|
deps = {[tempestenv]deps}
|
|
# The regex below is used to select which tests to run and exclude the slow tag:
|
|
# See the testrepository bug: https://bugs.launchpad.net/testrepository/+bug/1208610
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario))' {posargs}
|
|
|
|
[testenv:scenario]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
setenv = {[tempestenv]setenv}
|
|
deps = {[tempestenv]deps}
|
|
# The regex below is used to select all scenario tests
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --serial --regex '(^tempest\.scenario)' {posargs}
|
|
|
|
[testenv:smoke]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
setenv = {[tempestenv]setenv}
|
|
deps = {[tempestenv]deps}
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --regex '\[.*\bsmoke\b.*\]' {posargs}
|
|
|
|
[testenv:smoke-serial]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
setenv = {[tempestenv]setenv}
|
|
deps = {[tempestenv]deps}
|
|
# This is still serial because neutron doesn't work with parallel. See:
|
|
# https://bugs.launchpad.net/tempest/+bug/1216076 so the neutron smoke
|
|
# job would fail if we moved it to parallel.
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --serial --regex '\[.*\bsmoke\b.*\]' {posargs}
|
|
|
|
[testenv:slow-serial]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
setenv = {[tempestenv]setenv}
|
|
deps = {[tempestenv]deps}
|
|
# The regex below is used to select the slow tagged tests to run serially:
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --serial --regex '\[.*\bslow\b.*\]' {posargs}
|
|
|
|
[testenv:venv]
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands = {posargs}
|
|
|
|
[testenv:venv-tempest]
|
|
envdir = .tox/tempest
|
|
sitepackages = {[tempestenv]sitepackages}
|
|
setenv = {[tempestenv]setenv}
|
|
deps = {[tempestenv]deps}
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -rf doc/build
|
|
sphinx-build -W -b html doc/source doc/build/html
|
|
whitelist_externals = rm
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
flake8 {posargs}
|
|
check-uuid
|
|
|
|
[testenv:uuidgen]
|
|
commands =
|
|
check-uuid --fix
|
|
|
|
[hacking]
|
|
local-check-factory = tempest.hacking.checks.factory
|
|
import_exceptions = tempest.services
|
|
|
|
[flake8]
|
|
# E125 is a won't fix until https://github.com/jcrocholl/pep8/issues/126 is resolved. For further detail see https://review.openstack.org/#/c/36788/
|
|
# E123 skipped because it is ignored by default in the default pep8
|
|
# E129 skipped because it is too limiting when combined with other rules
|
|
ignore = E125,E123,E129
|
|
show-source = True
|
|
exclude = .git,.venv,.tox,dist,doc,*egg,build
|
|
enable-extensions = H106,H203,H904
|
|
import-order-style = pep8
|
|
|
|
[testenv:releasenotes]
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -rf releasenotes/build
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees \
|
|
-b html releasenotes/source releasenotes/build/html
|
|
whitelist_externals = rm
|
|
|
|
[testenv:pip-check-reqs]
|
|
# Do not install test-requirements as that will pollute the virtualenv for
|
|
# determining missing packages.
|
|
# This also means that pip-check-reqs must be installed separately, outside
|
|
# of the requirements.txt files
|
|
deps = pip_check_reqs
|
|
-r{toxinidir}/requirements.txt
|
|
commands=
|
|
pip-extra-reqs -d --ignore-file=tempest/tests/* tempest
|
|
pip-missing-reqs -d --ignore-file=tempest/tests/* tempest
|
|
|
|
|
|
[testenv:bindep]
|
|
# Do not install any requirements. We want this to be fast and work even if
|
|
# system dependencies are missing, since it's used to tell you what system
|
|
# dependencies are missing! This also means that bindep must be installed
|
|
# separately, outside of the requirements files.
|
|
deps = bindep
|
|
commands = bindep test
|
|
|
|
[testenv:plugin-sanity-check]
|
|
# perform tempest plugin sanity
|
|
whitelist_externals = bash
|
|
commands =
|
|
bash tools/tempest-plugin-sanity.sh
|