3
respostas

Não consigo executar o pytest diretamente via terminal

Por algum motivo, o pytest não está sendo reconhecido como comando pelo meu terminal. Estou com os seguintes problemas:

C:\Users\HenriquJ>python --version
Python 3.9.2

C:\Users\HenriquJ>pip install pytest
Requirement already satisfied: pytest in c:\python39\lib\site-packages (6.2.2)
Requirement already satisfied: iniconfig in c:\python39\lib\site-packages (from pytest) (1.1.1)
Requirement already satisfied: packaging in c:\python39\lib\site-packages (from pytest) (20.9)
Requirement already satisfied: colorama in c:\python39\lib\site-packages (from pytest) (0.4.4)
Requirement already satisfied: atomicwrites>=1.0 in c:\python39\lib\site-packages (from pytest) (1.4.0)
Requirement already satisfied: py>=1.8.2 in c:\python39\lib\site-packages (from pytest) (1.10.0)
Requirement already satisfied: toml in c:\python39\lib\site-packages (from pytest) (0.10.2)
Requirement already satisfied: pluggy<1.0.0a1,>=0.12 in c:\python39\lib\site-packages (from pytest) (0.13.1)
Requirement already satisfied: attrs>=19.2.0 in c:\python39\lib\site-packages (from pytest) (20.3.0)
Requirement already satisfied: pyparsing>=2.0.2 in c:\python39\lib\site-packages (from packaging->pytest) (2.4.7)

C:\Users\HenriquJ>pytest --version
'pytest' is not recognized as an internal or external command,
operable program or batch file.

O pytest já está instalado mas não consigo checar sua versão. Só consigo acessar o pytest utilizando o python -m da seguinte forma:

C:\Users\HenriquJ>python -m pytest --version
pytest 6.2.2

Da mesma forma, se eu executar o comando pytest no meu diretório, não consigo executar, tenho que fazer python -m pytest para rodar os testes. Estou fazendo algo de errado?

3 respostas

Olá,

Python é o interpretador e sempre será necessário chamá-lo para usar qualquer biblioteca instalada, o argumento "-m" vem de module, significa que você está pedido que o python chame o módulo pytest. De forma resumida, o seu resultado foi o que realmente era esperado, sempre será necessário usar o python junto (pip é um caso a parte e possui um executável pip.exe, por isso você consegue chamá-lo diretamente).

Abs

Olá muito obrigado pela resposta. Entedi o que vc está dizendo, porém no curso o professor utiiza o pytest diretamente pelo terminal mandando apenas o comando "pytest". Por que não consigo fazer da mesma forma?

João,

Se foi utilizado apenas pytest é porque ele também é um executável, nesse caso você pode fazer de 3 formas, sendo que em todas elas você precisa saber em qual diretório está esse executável (na dúvida, pesquise dentro da pasta que está instalado o python): 1) Incluir o diretório do pytest.exe nas variável PATH em suas variáveis de ambiente (não é tão complexo, só pesquisar no google que explica como incluir variáveis de ambiente) 2) Passar o caminho completo do pytest.exe, ex: no prompt, no lugar de "pytest ", você usa "C:" 3) Mudar seu working directory para a pasta do pytest.

Toda vez que você digita algo no prompt ele vai buscar na pasta em que você está no prompt, o caminho completo que você passar e nas pastas que estão na variável PATH das suas variáveis de ambiente, por isso chamar direto não deve estar funcionando.

Abs

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software