From f77caa259db8949bbca6035f06a25ed49088a14b Mon Sep 17 00:00:00 2001 From: "Timothy A. Smith" Date: Wed, 29 May 2019 10:21:40 -0500 Subject: [PATCH] tests marked with @pytest.mark.slow will be skipped by default, but not by the CI script --- build-and-test-py-project.sh | 2 +- conftest.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 conftest.py diff --git a/build-and-test-py-project.sh b/build-and-test-py-project.sh index 08035f5..8bfbc06 100644 --- a/build-and-test-py-project.sh +++ b/build-and-test-py-project.sh @@ -85,6 +85,6 @@ if test -f $REQUIREMENTS_TXT; then $PIP install -r $REQUIREMENTS_TXT fi -${PY_EXE} -m pytest -rw --durations=10 --tb=native --junitxml=pytest.xml -rxsw test.py +${PY_EXE} -m pytest -rw --durations=10 --tb=native --junitxml=pytest.xml -rxsw --runslow test.py # vim: foldmethod=marker diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000..29be9d5 --- /dev/null +++ b/conftest.py @@ -0,0 +1,21 @@ +# setup to mark slow tests with @pytest.mark.slow, so that they don't run by +# default, but can be forced to run with the command-line option --runslow +# taken from +# https://docs.pytest.org/en/latest/example/simple.html#control-skipping-of-tests-according-to-command-line-option + +import pytest + + +def pytest_addoption(parser): + parser.addoption("--runslow", action="store_true", default=False, + help="run slow tests") + + +def pytest_collection_modifyitems(config, items): + if config.getoption("--runslow"): + # --runslow given in cli: do not skip slow tests + return + skip_slow = pytest.mark.skip(reason="need --runslow option to run") + for item in items: + if "slow" in item.keywords: + item.add_marker(skip_slow) -- GitLab