Pytest - Regroupement des tests

Dans ce chapitre, nous allons apprendre à regrouper les tests à l'aide de marqueurs.

Pytest nous permet d'utiliser des marqueurs sur les fonctions de test. Les marqueurs sont utilisés pour définir diverses caractéristiques / attributs pour tester les fonctions. Pytest fournit de nombreux marqueurs intégrés tels que xfail, skip et parametrize. En dehors de cela, les utilisateurs peuvent créer leurs propres noms de marqueurs. Les marqueurs sont appliqués sur les tests en utilisant la syntaxe donnée ci-dessous -

@pytest.mark.<markername>

Pour utiliser des marqueurs, nous devons import pytestmodule dans le fichier de test. Nous pouvons définir nos propres noms de marqueurs pour les tests et exécuter les tests avec ces noms de marqueurs.

Pour exécuter les tests marqués, nous pouvons utiliser la syntaxe suivante -

pytest -m <markername> -v

-m <nom_marque> représente le nom du marqueur des tests à exécuter.

Mettez à jour nos fichiers de test test_compare.py et test_square.pyavec le code suivant. Nous définissons 3 marqueurs– 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

Maintenant, pour exécuter les tests marqués comme others, exécutez la commande suivante -

pytest -m others -v

Voir le résultat ci-dessous. Il a exécuté les 2 tests marqués commeothers.

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
==========================

De même, nous pouvons également exécuter des tests avec d'autres marqueurs - excellent, comparez