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.