1
resposta

Pytest mapeando o virtual env

Estou implementando testes num projeto Django mas quando rodo o pytest pelo terminal ele também aplica os testes no ambiente virtual (.venv)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu tenho configurado o arquivo pytest.ini da seguinte forma

[pytest]
DJANGO_SETTINGS_MODULE = base.settings
python_files = tests.py test_*.py *_tests.py
addopts = --cov --cov-fail-under=90

Como faço para os testes não mapearem o .venv?

1 resposta

Olá, tudo bem com você?

Peço desculpas pela demora no retorno.

Para que os testes executados pelo Pytest não realize o mapeamento da pasta venv será necessário criar um arquivo de nome .coveragerc na pasta principal do projeto para receber uma configuração personalizada de execução dos testes e usaremos a opção omit para informar que a pasta venv deve ser ignorada. Basta seguir os passos abaixo.

Crie o arquivo .coveragerc e adicione as seguintes linhas.

[run]
omit = 
    venv/*

Salve o arquivo e execute os testes. Executando o comando abaixo no terminal aberto na pasta do projeto Django.

pytest -v

Podemos também limitar a varredura dos testes feitos pelo Pytest definindo que o teste deve ser realizado em um caminho específico. Para isso será necessário adicionar as opções adicionais (addopts) do arquivo pytest.ini, a seguinte sintaxe.

addopts = --cov=<caminho_que_sera_verificado> <caminho_para_os_testes>

Considerando o seguinte exemplo, temos um app de nome animais e queremos verificar apenas a cobertura dos testes no arquivo models.py, usando o arquivo de testes presentes no app, a sintaxe a opção addopts será a seguinte.

addopts = --cov=animais.models animais/tests

Note que a definição do caminho para o arquivo que será testado foi utilizado o ponto (.) e não foi fornecido o formato do arquivo (.py), já no caminho para os testes, é utilizado uma barra (/). Caso não seja respeitado essa sintaxe, será elevado erro de geração de reporte e arquivo não encontrado.

Caso queira definir os testes para múltiplos arquivos, basta fornecer novamente a opção --cov para o addopts contendo o caminho para o arquivo e o caminho para os testes.

Após adicionar as configurações propostas acima, basta salvar os arquivos e executar os testes usando o comando abaixo.

pytest -v

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!