Pytest: faça testes e gere relatórios rapidamente
Por Bruno Zago
25 outubro 2018 - 10:47 | Atualizado em 29 março 2023 - 17:31
O pytest é um framework usado para a criação de testes de uma maneira mais dinâmica e rápida. Seus testes devem ser desenvolvidos em python (todos os arquivos devem ser salvos com a extensão .py), o que faz com que o código fique menor, seja mais legível e fácil de dar manutenção. Pode-se gerar diversos tipos de relatório (html, csv, xml) apenas passando alguns parâmetros na execução da suíte de testes.
1 – Instalação
1.1 – Instalando o python no windows
1.1.1 – Baixar e instalar executável da linguagem python (recomendado 3.6.5 ~)
1.1.2 – Lembre-se de marcar a opção de adicionar o python ao path do windows
1.1.3 – Verificar se o python foi instalado e adicionado ao path do windows com sucesso.
Abra um terminal e digite “python -V”
1.1.4 – Baixe e instale o PIP (baixar o arquivo get-pip.py e executá-lo no terminal com o comando python get-pip.py)
Siga os passos da imagem abaixo:
(Lembre-se de acessar a pasta que você salvou o get-pip.py através do terminal, antes de executá-lo)
Agora verifique se o pip foi instalado corretamente com o comando pip –version
1.1.5 – Instalar o pytest com o comando pip install pytest pytest-html (Veja o exemplo de um computador com os pacotes já instalados).
2 – Introdução ao pytest
2.1 – Primeiro exemplo
Neste tutorial, vamos criar todos os testes com funções declaradas da forma test_nome_do_teste. (A palavra test deve aparecer no começo do nome da função para que o pytest detecte os testes sozinho)
Queremos verificar o comportamento de uma função, e, para isso, precisamos saber qual a saída correta para uma determinada entrada. Segue o exemplo de uma simples análise de um método que retorna a soma de dois elementos:
O segundo método faz a comparação entre o primeiro parâmetro (o número 5) e o retorno da função de soma e não retorna uma exceção quando a comparação é feita com sucesso. (Salve esse programa acima em um arquivo .py com o nome de sua preferência).
2.2 – Executando o primeiro teste.
O arquivo acima foi salvo com o nome test_assert1.py para fins de demonstração. Execute em um terminal o comando pytest nomedoarquivo.py, o resultado deve ser algo parecido com:
O framework detectou apenas um método de teste (por conta da nomenclatura) e fez a comparação descrita na função test_soma. Como a comparação entre o número 5 e o retorno da função de soma com os parâmetros 3 e 2 não retornou uma exceção do tipo AssertionError, o teste foi aceito e passou.
2.3 – Forçando um erro para analisar a saída
Vamos modificar o assert do nosso arquivo test_assert1.py alterando o valor 5 para 6 e verificar a saída no terminal.
2.4 – Executando vários testes
Vamos atualizar nosso arquivo test_assert1.py deixando ele com três funções e três testes referentes às funções:
Agora, execute novamente o comando pytest test_assert1.py e veja que o framwork entendeu que existem três testes presentes no arquivo (devido à nomenclatura que demos).
2.5 – Executando testes em vários arquivos ao mesmo tempo
Crie dois arquivos na pasta raiz do projeto: o primeiro (setup.cfg), deve instruir ao pytest apenas arquivos que comecem com o nome test_ dentro de uma pasta chamada tests e que ao fim da execução, gere um relatório html. O segundo (setup.py) deve informar os requerimentos da suíte de testes.
Reaproveite o código do arquivo test_assert1.py criando um diretório com o nome tests, salve cada função e seu respectivo teste em três arquivos (.py) diferentes de acordo com a imagem abaixo: test_assert1.py, test_assert2.py e test_assert3.py.
Execute apenas o comando pytest no terminal (lembre-se que o terminal deve estar uma hierarquia acima da pasta tests para que o pytest encontre automaticamente esse diretório e seus testes).
Verifique o report.html gerado.
Gostou do conteúdo e quer conhecer mais sobre python e pytest? Basta acessar os links https://docs.pytest.org/en/latest/ e https://www.python.org/doc/.
Deixe um comentário