Pytest - começando com o teste básico
Agora, começaremos com nosso primeiro programa de teste de teste. Primeiro criaremos um diretório e, assim, criaremos nossos arquivos de teste no diretório.
Vamos seguir as etapas abaixo -
Crie um novo diretório chamado automation e navegue até o diretório em sua linha de comando.
Crie um arquivo chamado test_square.py e adicione o código abaixo a esse arquivo.
import math
def test_sqrt():
num = 25
assert math.sqrt(num) == 5
def testsquare():
num = 7
assert 7*7 == 40
def tesequality():
assert 10 == 11
Execute o teste usando o seguinte comando -
pytest
O comando acima irá gerar a seguinte saída -
test_square.py .F
============================================== FAILURES
==============================================
______________________________________________ testsquare
_____________________________________________
def testsquare():
num=7
> assert 7*7 == 40
E assert (7 * 7) == 40
test_square.py:9: AssertionError
================================= 1 failed, 1 passed in 0.06 seconds
=================================
Veja a primeira linha do resultado. Ele exibe o nome do arquivo e os resultados. F representa uma falha de teste e o ponto (.) Representa um sucesso de teste.
Abaixo disso, podemos ver os detalhes dos testes que falharam. Ele mostrará em qual declaração o teste falhou. Em nosso exemplo, 7 * 7 é comparado para igualdade contra 40, o que está errado. No final, podemos ver o resumo da execução do teste, 1 falha e 1 aprovada.
A função tesequality não é executada porque o pytest não irá considerá-la como um teste visto que o seu nome não é do formato test*.
Agora, execute o comando abaixo e veja o resultado novamente -
pytest -v
-v aumenta a verbosidade.
test_square.py::test_sqrt PASSED
test_square.py::testsquare FAILED
============================================== FAILURES
==============================================
_____________________________________________ testsquare
_____________________________________________
def testsquare():
num = 7
> assert 7*7 == 40
E assert (7 * 7) == 40
test_square.py:9: AssertionError
================================= 1 failed, 1 passed in 0.04 seconds
=================================
Agora o resultado é mais explicativo sobre o teste que falhou e o teste que passou.
Note - o comando pytest irá executar todos os arquivos de formato test_* ou *_test no diretório e subdiretórios atuais.