Pytest - Pare o conjunto de testes após N falhas de teste
Em um cenário real, uma vez que uma nova versão do código está pronta para ser implantada, ela é primeiro implantada no ambiente de pré-produção / preparação. Em seguida, um conjunto de testes é executado nele.
O código é qualificado para implantação na produção apenas se o conjunto de testes for aprovado. Se houver falha no teste, seja um ou vários, o código não está pronto para produção.
Portanto, e se quisermos interromper a execução do conjunto de testes logo após n número de falhas de teste. Isso pode ser feito em pytest usando maxfail.
A sintaxe para interromper a execução do conjunto de testes logo após n número de falhas de teste é a seguinte -
pytest --maxfail = <num>
Crie um arquivo test_failure.py com o código a seguir.
import pytest
import math
def test_sqrt_failure():
num = 25
assert math.sqrt(num) == 6
def test_square_failure():
num = 7
assert 7*7 == 40
def test_equality_failure():
assert 10 == 11
Todos os 3 testes falharão ao executar este arquivo de teste. Aqui, vamos parar a execução do teste após uma falha por -
pytest test_failure.py -v --maxfail = 1
test_failure.py::test_sqrt_failure FAILED
=================================== FAILURES
=================================== _______________________________________
test_sqrt_failure __________________________________________
def test_sqrt_failure():
num = 25
> assert math.sqrt(num) == 6
E assert 5.0 == 6
E + where 5.0 = <built-in function sqrt>(25)
E + where <built-in function sqrt>= math.sqrt
test_failure.py:6: AssertionError
=============================== 1 failed in 0.04 seconds
===============================
No resultado acima, podemos ver que a execução foi interrompida em uma falha.