a699445d28
tempest-full job run all services API and scenario tests (non slow) and this job is part of Integrated-gate gate template which run on multiple services (nova, neutron, cinder, glance, placement) check and gate pipeline. But there are many unrelated tests run on each project gate. For example, neutron gate run cinder only tests and fail due to cinder bugs. There is no point of breaking the neutron gate due to cinder only test failure and slow down the neutron development phase. This is what we dicussed in Train PTG in denver to improve the integrated gate[1] and came up with idea of split the integated-gate template into much logical way so that only dependent services tests run on their gate. One way was to move the service only tests to service tempest plugin side but Tempest is used by interop as well as on production cloud testing so moving the test is not good idea. This commit propose the idea of defining the 'Integrated-gate-storage' gate template for cinder gate which will run Cinder, Glance, Swift and Nova tests. ML discussion: http://lists.openstack.org/pipermail/openstack-discuss/2019-May/005871.html Next step will be to replace the Integrated-gate-py3 template with new Integrated-gate-storage template on cinder and glance gate. [1] https://etherpad.openstack.org/p/qa-train-ptg Change-Id: Iae7d26325228aad0edb94f7e191c8fd0d60e1362
296 lines
10 KiB
INI
296 lines
10 KiB
INI
[tox]
|
|
envlist = pep8,py36,py37,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://releases.openstack.org/constraints/upper/master}
|
|
-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 GABBI_TEMPEST_PATH
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
whitelist_externals = *
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-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:debug]
|
|
basepython = python3
|
|
commands = oslo_debug_helper -t tempest/tests {posargs}
|
|
|
|
[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]
|
|
# DEPRECATED
|
|
# NOTE(andreaf) The all-plugin tox env uses sitepackages
|
|
# so that plugins installed outsite of Tempest virtual environment
|
|
# can be discovered. After the implementation during the Queens
|
|
# release cycle of the goal of moving Tempest plugins in dedicated
|
|
# git repos, this environment should not be used anymore. "all"
|
|
# should be used instead with the appropriate regex filtering.
|
|
sitepackages = True
|
|
# 'all' includes slow tests
|
|
setenv =
|
|
{[tempestenv]setenv}
|
|
OS_TEST_TIMEOUT={env:OS_TEST_TIMEOUT:1200}
|
|
deps = {[tempestenv]deps}
|
|
commands =
|
|
echo "WARNING: The all-plugin env is deprecated and will be removed"
|
|
echo "WARNING Please use the 'all' environment for Tempest plugins."
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --regex {posargs:''}
|
|
|
|
[testenv:all-site-packages]
|
|
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
|
|
# FIXME: We can replace it with the `--black-regex` option to exclude tests now.
|
|
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:integrated-network]
|
|
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 and
|
|
# tests listed in blacklist file:
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --blacklist_file ./tools/tempest-integrated-gate-networking-blacklist.txt {posargs}
|
|
tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --blacklist_file ./tools/tempest-integrated-gate-networking-blacklist.txt {posargs}
|
|
|
|
[testenv:integrated-storage]
|
|
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 and
|
|
# tests listed in blacklist file:
|
|
commands =
|
|
find . -type f -name "*.pyc" -delete
|
|
tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' --blacklist_file ./tools/tempest-integrated-gate-storage-blacklist.txt {posargs}
|
|
tempest run --combine --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.scenario)' --blacklist_file ./tools/tempest-integrated-gate-storage-blacklist.txt {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
|
|
# FIXME: We can replace it with the `--black-regex` option to exclude tests now.
|
|
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://releases.openstack.org/constraints/upper/master}
|
|
-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]
|
|
basepython = python3
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-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]
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
autopep8
|
|
basepython = python3
|
|
commands =
|
|
autopep8 --exit-code --max-line-length=79 --experimental --diff -r tempest setup.py
|
|
flake8 {posargs}
|
|
check-uuid
|
|
|
|
[testenv:autopep8]
|
|
deps = autopep8
|
|
basepython = python3
|
|
commands =
|
|
{toxinidir}/tools/format.sh
|
|
|
|
[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.opendev.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
|
|
# W504 skipped because it is overeager and unnecessary
|
|
ignore = E125,E123,E129,W504
|
|
show-source = True
|
|
exclude = .git,.venv,.tox,dist,doc,*egg,build
|
|
enable-extensions = H106,H203,H904
|
|
import-order-style = pep8
|
|
|
|
[testenv:releasenotes]
|
|
basepython = python3
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-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
|
|
basepython = python3
|
|
whitelist_externals = bash
|
|
commands =
|
|
bash tools/tempest-plugin-sanity.sh
|