summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Dawson <phil.dawson@codethink.co.uk>2019-03-12 18:08:19 +0000
committerPhil Dawson <phil.dawson@codethink.co.uk>2019-03-13 14:33:19 +0000
commit4dd71edbea76c0c68b2ea4b77613e463bca1e8e0 (patch)
treea115bb620b3e1c506d3bfd54a38fba5b3094dd4d
parent2c3dfa4e1b92ead066b3fa25fe7c3037b4ba6c58 (diff)
downloadbuildstream-4dd71edbea76c0c68b2ea4b77613e463bca1e8e0.tar.gz
Move external plugin tests to seperate tox environment.
Having the external plugins in the same tox env as the internal tests is inconvenient for developers. Move the external tests into their own environment. In order to run the external tests locally, append `-external` to an environment name. For example tox -e py35-external.
-rw-r--r--.gitlab-ci.yml5
-rw-r--r--tox.ini35
2 files changed, 9 insertions, 31 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a494a2b34..c4d2c864a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,7 +12,9 @@ stages:
variables:
PYTEST_ADDOPTS: "--color=yes"
INTEGRATION_CACHE: "${CI_PROJECT_DIR}/cache/integration-cache"
- TEST_COMMAND: "tox -- --color=yes --integration -n 2"
+ PYTEST_ARGS: "--color=yes --integration -n 2"
+ TEST_COMMAND: "tox -- ${PYTEST_ARGS}"
+ EXTERNAL_TESTS_COMMAND: "tox -e py{35,36,37}-external -- ${PYTEST_ARGS}"
COVERAGE_PREFIX: "${CI_JOB_NAME}."
@@ -38,6 +40,7 @@ variables:
# Run the tests as a simple user to test for permission issues
- su buildstream -c "${TEST_COMMAND}"
+ - su buildstream -c "${EXTERNAL_TESTS_COMMAND}"
after_script:
except:
diff --git a/tox.ini b/tox.ini
index 3734bd6a6..4f61cccf7 100644
--- a/tox.ini
+++ b/tox.ini
@@ -2,7 +2,7 @@
# Tox global configuration
#
[tox]
-envlist = py35,py36,py37
+envlist = py{35,36,37}
skip_missing_interpreters = true
#
@@ -13,15 +13,13 @@ skip_missing_interpreters = true
[testenv]
commands =
# Running with coverage reporting enabled
- py{35,36,37}-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs}
- py{35,36,37}-!nocover: pip3 install -e {toxinidir}
- py{35,36,37}-!nocover: {envpython} {toxinidir}/tests/external_plugins.py {envtmpdir} --cov=buildstrean --cov-append {posargs}
+ py{35,36,37}-!external-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs}
py{35,36,37}-!nocover: mkdir -p .coverage-reports
+ external-!nocover: {envpython} {toxinidir}/tests/external_plugins.py {envtmpdir} --cov=buildstream --cov-append {posargs}
py{35,36,37}-!nocover: mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname}
# Running with coverage reporting disabled
- py{35,36,37}-nocover: pytest --basetemp {envtmpdir} {posargs}
- py{35,36,37}-nocover: pip3 install -e {toxinidir}
- py{35,36,37}-nocover: {envpython} {toxinidir}/tests/external_plugins.py {envtmpdir} {posargs}
+ py{35,36,37}-!external-nocover: pytest --basetemp {envtmpdir} {posargs}
+ external-nocover: {envpython} {toxinidir}/tests/external_plugins.py {envtmpdir} {posargs}
deps =
py{35,36,37}: -rrequirements/requirements.txt
py{35,36,37}: -rrequirements/dev-requirements.txt
@@ -52,29 +50,6 @@ whitelist_externals =
mkdir
#
-# Run only the tests that we use form external plugins
-#
-[testenv:external]
-commands =
- {envpython} {toxinidir}/tests/external_plugins.py {envtmpdir} {posargs}
-deps =
- -rrequirements/requirements.txt
- -rrequirements/dev-requirements.txt
- -rrequirements/plugin-requirements.txt
-
-
-#
-# Run only the tests which are defined by the BuildStream project
-#
-[testenv:internal]
-commands =
- pytest --basetemp {envtmpdir} {posargs}
-deps =
- -rrequirements/requirements.txt
- -rrequirements/dev-requirements.txt
- -rrequirements/plugin-requirements.txt
-
-#
# Coverage reporting
#
[testenv:coverage]