Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Não consigo rodar os testes pelo pycharm

Olá,

No meu código, que faço enquanto acompanho as aulas, não existem os botões de 'run' ao lado das def's das funções de testes no arquivo test_usuario.py

Tentei fazer exatamente da forma como o instrutor fez na aula, mas para mim, não aparece essa opção.

Alguém sabe dizer se tem alguma configuração do pycharm que talvez eu tenha que habilitar?

Obrigado!

6 respostas

Olá Felipe!

Seu def inicia com o prefixo "test"? Ex:

def test_alura(self): 

Pelo que entendi ele aparece o Run se tiver esse prefixo.

Se mesmo assim não funcionar me avisa que vou atrás de outra solução blz?

Aguardo seu retorno! :D

Atualizando a postagem anterior:

Percebi, quando fui importar o pytest utilizando o comando

import pytest

que esse pacote não estava disponível no meu pycharm. Então, instalei o pacote indo em file>settings>Project: testes-python-aula-04>Project Interpreter, clicando so símbolo de '+' no canto superior direito da janela e procurando por pytest, para depois instalá-lo.

Após esse procedimento, a linha de código acima não deu mais erro, mas para rodar os testes, ainda só dá pra fazer pelo git bash, ou rodando o arquivo inteiro com o comando Ctrl+Shift+f10

Olá Guilherme,

Tomei esse cuidado ao declarar a função. Mesmo assim, não aparece o botão ao lado para rodar apenas um teste

solução!

Olá Felipe, tudo bem?

Em alguns casos - principalmente no Windows - o Pycharm não consegue reconhecer o Pytest como forma padrão de rodar os testes, após a sua instalação.

Para resolver isso, e a gente precisa configurar manualmente esse processo.

Podemos ir em Settings/Preferences > Tools > Python Integrated Tools para tentar configurar isso.

Ali terá uma caixa com as opções de frameworks de testes para serem utilizados (Default Test Runner).

Olá Yuri,

Consegui configurar o pytest no pycharm e apareceram os botões de 'run'.

Essa questão está solucionada, mas tem outra questão que gostaria de verificar:

Uma coisa que achei estranha é que se eu clico com o botão direito do mouse na pasta geral do projeto, aparece a opção de rodar com o pytest.

Contudo, se eu clico apenas na pasta de testes (tests), só aparece a opção de rodar com o unittests.

E, se eu rodo com o unittests, somente 7 testes são feitos, que são os do leilão. Os do usuário ficam de fora, já que foram feitos para serem testados com o pytest.

Tem alguma ideia do por quê isso acontece?

Opa Felipe, tudo certo?

Isso acontece porque a unittest não consegue rodar os testes escritos no formato dos testes da pytest. Já a pytest consegue rodar os testes escritos pela unittest