Pytest - Xfail / Ignorar testes
Neste capítulo, aprenderemos sobre os testes Skip e Xfail no Pytest.
Agora, considere as situações abaixo -
- Um teste não é relevante por algum tempo devido a alguns motivos.
- Um novo recurso está sendo implementado e já adicionamos um teste para esse recurso.
Nessas situações, temos a opção de xfail no teste ou pular os testes.
O Pytest executará o teste xfailed, mas não será considerado como parte dos testes reprovados ou aprovados. Os detalhes desses testes não serão impressos mesmo se o teste falhar (lembre-se de que o pytest geralmente imprime os detalhes do teste que falhou). Podemos xfail nos testes usando o seguinte marcador -
@pytest.mark.xfail
Ignorar um teste significa que o teste não será executado. Podemos pular os testes usando o seguinte marcador -
@pytest.mark.skip
Mais tarde, quando o teste se tornar relevante, podemos remover os marcadores.
Edite o test_compare.py já temos que incluir os marcadores xfail e 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
Execute o teste usando o seguinte comando -
pytest test_compare.py -v
Após a execução, o comando acima irá gerar o seguinte 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
============================