Pytest - Gruppieren der Tests
In diesem Kapitel erfahren Sie, wie Sie die Tests mithilfe von Markern gruppieren.
Mit Pytest können wir Marker für Testfunktionen verwenden. Marker werden verwendet, um verschiedene Merkmale / Attribute zum Testen von Funktionen festzulegen. Pytest bietet viele integrierte Marker wie xfail, skip und parametrize. Außerdem können Benutzer ihre eigenen Markernamen erstellen. Marker werden auf die Tests mit der unten angegebenen Syntax angewendet -
@pytest.mark.<markername>
Um Marker zu verwenden, müssen wir import pytestModul in der Testdatei. Wir können unsere eigenen Markernamen für die Tests definieren und die Tests mit diesen Markernamen ausführen.
Um die markierten Tests auszuführen, können wir die folgende Syntax verwenden:
pytest -m <markername> -v
-m <Markername> repräsentiert den Markernamen der auszuführenden Tests.
Aktualisieren Sie unsere Testdateien test_compare.py und test_square.pymit dem folgenden Code. Wir definieren 3 Marker– 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
Führen Sie nun die als gekennzeichneten Tests aus othersFühren Sie den folgenden Befehl aus:
pytest -m others -v
Siehe das Ergebnis unten. Es wurden die 2 als gekennzeichneten Tests ausgeführtothers.
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
==========================
In ähnlicher Weise können wir auch Tests mit anderen Markern durchführen - großartig, vergleiche