Pytest - Xfail / Skip Tests

En este capítulo, aprenderemos sobre las pruebas Skip y Xfail en Pytest.

Ahora, considere las siguientes situaciones:

  • Una prueba no es relevante durante algún tiempo debido a algunas razones.
  • Se está implementando una nueva característica y ya agregamos una prueba para esa característica.

En estas situaciones, tenemos la opción de xfallar la prueba u omitir las pruebas.

Pytest ejecutará la prueba xfailed, pero no se considerará como prueba parcial o aprobada. Los detalles de estas pruebas no se imprimirán incluso si la prueba falla (recuerde que pytest generalmente imprime los detalles de la prueba fallida). Podemos xfail las pruebas usando el siguiente marcador:

@pytest.mark.xfail

Saltarse una prueba significa que la prueba no se ejecutará. Podemos omitir las pruebas usando el siguiente marcador:

@pytest.mark.skip

Posteriormente, cuando la prueba sea relevante, podemos eliminar los marcadores.

Edite el test_compare.py ya tenemos que incluir los marcadores xfail y skip -

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

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

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

Ejecute la prueba usando el siguiente comando:

pytest test_compare.py -v

Tras la ejecución, el comando anterior generará el siguiente resultado:

test_compare.py::test_greater xfail
test_compare.py::test_greater_equal XPASS
test_compare.py::test_less SKIPPED
============================ 1 skipped, 1 xfailed, 1 xpassed in 0.06 seconds
============================