Mark basics
Pytest allows you to mark functions and classes with metadata. This metadata can be used to selectively run tests, and is also available for fixtures and plugins, to perform different tasks. Let's take a look at how to create and apply marks to test functions, and later on jump into built-in pytest marks.
Creating marks
Marks are created with the @pytest.mark
decorator. It works as a factory, so any access to it will automatically create a new mark and apply it to a function. This is easier to understand with an example:
@pytest.mark.slow
def test_long_computation():
...
By using the @pytest.mark.slow
decorator, you are applying a mark named slow
to test_long_computation
.
Marks can also receive parameters:
@pytest.mark.timeout(10, method="thread")
def test_topology_sort():
...
The @pytest.mark.timeout
used in the last example was taken from the pytest-timeout plugin; for more details go to https://pypi.org/project/pytest-timeout/. With this, we define that test_topology_sort...