Pytest - Grupowanie testów

W tym rozdziale dowiemy się, jak grupować testy za pomocą markerów.

Pytest pozwala nam używać markerów w funkcjach testowych. Markery służą do ustawiania różnych cech / atrybutów do testowania funkcji. Pytest zapewnia wiele wbudowanych markerów, takich jak xfail, skip i parametize. Oprócz tego użytkownicy mogą tworzyć własne nazwy znaczników. Markery są stosowane w testach przy użyciu składni podanej poniżej -

@pytest.mark.<markername>

Aby używać markerów, musimy import pytestmoduł w pliku testowym. Możemy zdefiniować własne nazwy markerów do testów i uruchomić testy z tymi nazwami markerów.

Aby uruchomić zaznaczone testy, możemy użyć następującej składni -

pytest -m <markername> -v

-m <markername> reprezentuje nazwę znacznika testów do wykonania.

Zaktualizuj nasze pliki testowe test_compare.py i test_square.pyz następującym kodem. Definiujemy 3 markery– great, square, others.

test_compare.py

import pytest
@pytest.mark.great
def test_greater():
   num = 100
   assert num > 100

@pytest.mark.great
def test_greater_equal():
   num = 100
   assert num >= 100

@pytest.mark.others
def test_less():
   num = 100
   assert num < 200

test_square.py

import pytest
import math

@pytest.mark.square
def test_sqrt():
   num = 25
   assert math.sqrt(num) == 5

@pytest.mark.square
def testsquare():
   num = 7
   assert 7*7 == 40

@pytest.mark.others
   def test_equality():
   assert 10 == 11

Teraz do uruchomienia testów oznaczonych jako others, uruchom następujące polecenie -

pytest -m others -v

Zobacz wynik poniżej. Uruchomił 2 testy oznaczone jakoothers.

test_compare.py::test_less PASSED
test_square.py::test_equality FAILED
============================================== FAILURES
==============================================
___________________________________________ test_equality
____________________________________________
   @pytest.mark.others
   def test_equality():
>  assert 10 == 11
E  assert 10 == 11
test_square.py:16: AssertionError
========================== 1 failed, 1 passed, 4 deselected in 0.08 seconds
==========================

Podobnie możemy przeprowadzić testy z innymi markerami - świetnie, porównaj