List available tests with py.test
You should use the flag --collect-only
. If you are using pytest
5.3.0 or newer use --co
.
pytest 5.3.0+
pytest --co
previous versions
pytest --collect-only
You can use this flag among other flags, so in your case pytest --co -k PATTERN
.
Both --collect-only and --setup-plan will print out your test files and individual tests.
--collect-only
(or --co
) prints in a <[type] [name]> format
pytest --collect-only
# or
pytest --co
# <Module test_file.py>
# <Function test__my_awesome_code_does_the_awesome_thing>
--setup-plan
is more verbose and prints the entire test-run plan (including any setup, teardown, and fixtures used for each test). It also prints the entire path for each test.
pytest --setup-plan
# tests/test_file.py
# SETUP [...]
# tests/test_file.py::test__my_awesome_code_does_the_awesome_thing (fixtures used: [...])
# TEARDOWN [...]
You can also use --collect-only
, this will show a tree-like structure of the collected nodes. Usually one can simply -k
on the names of the Function nodes.
-v verbose tells you which test cases are run, i.e. which did match your PATTERN.