.. _`retrieved by hooks as item keywords`: control skipping of tests according to command line option -------------------------------------------------------------- Here is a ``conftest.py`` file adding a ``--runslow`` command line option to control skipping of ``slow`` marked tests:: # content of conftest.py import pytest def pytest_addoption(parser): parser.addoption("--runslow", action="store_true", help="run slow tests") def pytest_runtest_setup(item): if 'slow' in item.keywords and not item.config.getvalue("runslow"): pytest.skip("need --runslow option to run") We can now write a test module like this:: # content of test_module.py import pytest slow = pytest.mark.slow def test_func_fast(): pass @slow def test_func_slow(): pass and when running it will see a skipped "slow" test:: $ py.test test_module.py -rs # "-rs" means report details on the little 's' =========================== test session starts ============================ platform linux2 -- Python 2.6.5 -- pytest-2.0.0.dev30 test path 1: test_module.py test_module.py .s ========================= short test summary info ========================== SKIP [1] /tmp/doc-exec-104/conftest.py:9: need --runslow option to run =================== 1 passed, 1 skipped in 0.02 seconds ==================== Or run it including the ``slow`` marked test:: $ py.test test_module.py --runslow =========================== test session starts ============================ platform linux2 -- Python 2.6.5 -- pytest-2.0.0.dev30 test path 1: test_module.py test_module.py .. ========================= 2 passed in 0.01 seconds =========================