I just learned about a neat trick when using
pytest - the ability to "mark" tests with metadata, and the ability to selectively run groups of marked tests.
Here's an example:
import pytest @pytest.mark.slow # annotate it as a "slow" test def test_that_runs_slowly(): .... @pytest.mark.slow # annotate test as a "slow" test. @pytest.mark.integration # annotate test as being an "integration" test def test_that_does_integration(): ....
What's really cool here is that I can selectively run slow tests or selectively run integration tests:
$ py.test -m "slow" # only runs "slow" tests $ py.test -m "integration" # only runs "integration" tests $ py.test -m "not integration" # only runs tests that are not "integration" tests.