Pytest: agrupación de las pruebas

En este capítulo, aprenderemos cómo agrupar las pruebas usando marcadores.

Pytest nos permite usar marcadores en funciones de prueba. Los marcadores se utilizan para establecer varias características / atributos para probar funciones. Pytest proporciona muchos marcadores incorporados, como xfail, skip y parametrize. Aparte de eso, los usuarios pueden crear sus propios nombres de marcadores. Los marcadores se aplican en las pruebas utilizando la sintaxis que se indica a continuación:

@pytest.mark.<markername>

Para usar marcadores, tenemos que import pytestmódulo en el archivo de prueba. Podemos definir nuestros propios nombres de marcadores para las pruebas y ejecutar las pruebas que tengan esos nombres de marcadores.

Para ejecutar las pruebas marcadas, podemos usar la siguiente sintaxis:

pytest -m <markername> -v

-m <nombre de marcador> representa el nombre de marcador de las pruebas que se ejecutarán.

Actualice nuestros archivos de prueba test_compare.py y test_square.pycon el siguiente código. Estamos definiendo 3 marcadores– 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

Ahora para ejecutar las pruebas marcadas como others, ejecute el siguiente comando:

pytest -m others -v

Vea el resultado a continuación. Ejecutó las 2 pruebas marcadas comoothers.

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

Del mismo modo, también podemos ejecutar pruebas con otros marcadores; genial, compare