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)