diff --git a/build-and-test-py-project.sh b/build-and-test-py-project.sh index 08035f596a67e99474afccbd0203d7cac2bc5b46..8bfbc06940aa87368d22708756076e22b9e615a8 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 0000000000000000000000000000000000000000..29be9d5330e9401e60381cb48a17fd6de4ed5559 --- /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)