6
respostas

Erro na hora de testar a classe TestClass

Consegui fazer tudo na aula até agora, porém, estou com um problema na hora de testar a classe "TestClass", ela roda e funciona mas não aparece nada, quando dou o "run" só aparece "Process finished with exit code 0", não retorna o valor do teste, e a seta verde que deveria aparecer ao lado da classe "TestClass" também não está aparecendo.

Obs: Eu instalei a biblioteca Pytest e também já criei o arquivo requirements.txt.

Como faço para resolver isso ?

6 respostas

Olá, Luiz. Tudo bem?

Ese problema pode estar acontecendo devido a um erro no nome do teste. Com o pytest existe uma regra de nomemclatura que deve ser seguido nos métodos de teste. Eles devem começar com a palavra test, caso contrário o teste será ignorado na execução do código.

Um exemplo de teste com a nomenclatura correta pode ser visto a seguir:

def test_um_teste_que_retorna_true():
   assert True

Já um teste que seria ignorado na execução, por não possuir a nomenclatura correta pode ser visto a seguir:

def um_teste_ignorado():
   assert True

Assim, sugiro que você verifique o nome dos seus testes. Caso isso não resolva o problema, peço que me mande o código dos teus testes para que eu possa te ajudar melhor.

Espero ter ajudado. Qualquer outra questão me coloco a disposição.

Abraços. Bons estudos!

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

Bom dia, Gabrielle.

Já verifiquei o nome do teste e está escrito certo, a função começa assim " def test ", a função inteira se chama " def test_quando_idade_recebe_13_03_2000_deve_retornar_23(self): "; a nomenclatura parece não ser o problema.

vou manda o código para inteiro para você da uma olhada então.

from bytebank import Funcionario

class TestClass:
    def test_quando_idade_recebe_13_03_2000_deve_retornar_23(self):
        entrada = '13/03/2000' #Given-Contexto
        esperado = 23

        funcionario_teste = Funcionario('Teste', entrada, 1111)
        resultado = funcionario_teste.idade() #When-ação

        assert resultado == esperado #Then-desfecho

Boa noite, Ainda não consegui resolver o problema, já enviei meu código para revisão mas ninguém respondeu ainda, continuo no aguardo.

Atenciosamente,

Luiz Miguel.

Boa noite, Luiz. Tudo bem?

Peço mil desculpas pela demora em te dar um retorno.

O seu código está correto. Testei ele aqui e está funcionando perfeitamente. Então o problema provavelmente é em algum detalhe no ambiente. Você poderia, por gentileza, verificar isso?

Primeiro vamos ver se o ambiente virtual está ativo. Na sua pasta do seu projeto deve existir uma pasta para o ambiente virtual. Ela provavelmente se chama venv. Se isso estiver ok, vamos para a próxima etapa.

Abra o terminal. Para isso, você pode acessar o menu lateral esquerdo do pyCharm, na parte inferior e procurar pelo ícone do terminal. Depois de abrir o terminal, se a venv estiver ativa, o nome dela vai aparecer entre parênteses, como na imagem abaixo:

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

Se até aqui estiver tudo certo, vamos verificar se o pytest está devidamente instalado dentro da venv, com o comando a seguir:

pytest --version

Caso esteja tudo certo, seu terminal mostrará a versão instalada. Caso contrário, aparecerá um erro que para corrigir basta instalar o pytest com o comando:

pip install pytest

Se o problema não estiver em nenhuma dessas etapas, me avise. Que continuaremos investigando. Aqui no meu computador eu consegui reproduzir esse comportamento que você está relatando, quando a biblioteca pytest não estava instalada no ambiente virtual.

Fico no aguardo.

O problema está na Venv mesmo, acabei de verificar o passo a passo, e a venv não está ativa, ela não aparece em entre parenteses, como que faço pra ativá-la ?

Olá, Luiz.

Para ativar a venv você deverá abrir o terminal, na pasta do seu projeto e utilizar o seguinte comando no Windows:

venv\Scripts\activate

Caso você utilize MacOS ou Linux, o comando é:

source venv/bin/activate

Isso ativará sua venv. Depois é só seguir com o restante do passo a passo anterior.

Caso queira desativar sua venv em algum momento o comando é:

deactivate

Espero ter ajudado. Fico no aguardo pelo seu feedback.