From 4dd71edbea76c0c68b2ea4b77613e463bca1e8e0 Mon Sep 17 00:00:00 2001 From: Phil Dawson Date: Tue, 12 Mar 2019 18:08:19 +0000 Subject: 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. --- .gitlab-ci.yml | 5 ++++- tox.ini | 35 +++++------------------------------ 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 @@ -51,29 +49,6 @@ whitelist_externals = mv 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 # -- cgit v1.2.1