QA Learning / pytest

Módulo 1: Preparar a máquina

Do zero até pytest rodando verde no seu terminal.

1. Pegar o código

Baixe, descompacte, e pronto. Não precisa de Git nem de conta no GitHub:

Baixar só esta trilha (.zip) 26 KB · 9 arquivos, sem mais nada junto

Dentro do ZIP vêm só duas pastas, e são exatamente as duas de que esta trilha precisa:

trilha-3/     os testes que você vai escrever
pratica/      o banco pratica.db, o mesmo da Trilha 1

Se preferir clonar com Git, um aviso: isso baixa o repositório inteiro, cerca de 4 MB (o site, as outras trilhas e todo o histórico de commits), não só esta trilha.

git clone https://github.com/ezequiel-dawud/HardSkillsQA.git

Só vale a pena se você for fazer a Trilha 6 (CI/CD), que precisa do repositório de verdade pra rodar o pipeline, ou se quiser praticar o que a Trilha 2 ensina. Nesse caso a pasta se chama HardSkillsQA e os testes ficam em HardSkillsQA/trilha-3/. Para só fazer esta trilha, o botão acima basta: são 26 KB em vez de 4 MB.

No Windows, atenção a uma pegadinha: o "Extrair Tudo" cria uma pasta com o nome do arquivo e mantém o que vem dentro dele, às vezes você acaba com qa-learning-pytest\qa-learning-pytest\. A pasta certa é a que tem trilha-3 e pratica logo dentro. Se você baixar duas vezes, o Windows ainda acrescenta (1) no nome, não tem problema, só confira onde você está antes de rodar os comandos.

2. Instalar o Python

Se python --version já responde algo tipo Python 3.11+, pule pro passo 3.

Windows: baixe em python.org/downloads e, no instalador, marque "Add python.exe to PATH" antes de clicar em Install. Esse checkbox é onde quase todo mundo tropeça: sem ele o terminal não acha o python.

macOS: brew install python (ou o instalador do python.org). Linux: já vem; instale o python3-venv pela sua distro se faltar.

3. Ambiente isolado + pytest

Um venv ("virtual environment") é uma cópia local do Python só pra este projeto: o que você instalar aqui não bagunça o resto da máquina, e some quando você apaga a pasta.

Windows / PowerShell. Abra o terminal na pasta que você descompactou e rode uma linha de cada vez, esperando cada uma terminar:

cd trilha-3
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

Não cole as quatro de uma vez. O PowerShell executa a primeira e fica mostrando >>, esperando você terminar de digitar, e aí a saída fica confusa. Se isso acontecer, aperte Enter numa linha vazia para sair desse estado. E nunca copie os >> da tela de volta pro terminal: eles são o prompt, não fazem parte do comando. Colar de volta dá O termo '>>' não é reconhecido.

O cd trilha-3 é o passo em que todo mundo tropeça: o requirements.txt mora lá dentro, não na pasta de cima. Se aparecer Could not open requirements file, é porque você ficou uma pasta acima. Rode dir (ou ls) e confira que você vê os arquivos test_01…, test_02… e test_03….

macOS / Linux: só muda a ativação: source .venv/bin/activate.

Deu certo se o começo da linha do terminal passou a mostrar (.venv). Da próxima vez que abrir o terminal, só o activate basta: não precisa recriar o venv nem reinstalar.

4. Rodar

pytest

Saída esperada na primeira vez (resumida):

test_01_primeiros_testes.py::test_o_banco_abre PASSED
test_02_integridade.py::test_nenhum_pedido_orfao PASSED
test_02_integridade.py::test_pedido_nao_cancelado_nao_tem_valor_zero XFAIL
...
======== 12 passed, 3 xfailed ========

5. Ler a saída

  • PASSED (verde): o assert do teste foi verdadeiro.
  • FAILED (vermelho): o assert foi falso, ou a função explodiu. O pytest imprime a linha do assert e os dois lados da comparação (o que esperava × o que veio). É aí que você lê o que deu errado.
  • XFAIL: teste marcado como "sabidamente falhando". Conta como sucesso da suíte (não deixa vermelho). Módulo 3 explica.
  • ERROR: quebrou antes do teste (ex.: a fixture não achou o banco). Diferente de FAILED.
  • A última linha é o placar. O código de saída é 0 só se nada falhou: é isso que o CI olha pra dar o build como verde ou vermelho.

Flags que ajudam: pytest -v (uma linha por teste), pytest -x (para no primeiro erro), pytest test_02_integridade.py (só um arquivo), pytest -k orfao (só testes com "orfao" no nome).

Erros comuns

MensagemO que é / correção
'python' não é reconhecido…Python não está no PATH. Reinstale marcando "Add to PATH", ou use py no lugar de python (Windows).
No module named pytesto venv não está ativo, ou você não rodou pip install -r requirements.txt. Rode .venv\Scripts\activate e tente de novo.
não achei o banco em …pratica.dbvocê rodou de fora de trilha-3/, ou baixou só a pasta. Rode de dentro de trilha-3/, com o repo completo.
execution of scripts is disabled (PowerShell)a política do PowerShell bloqueia o activate. Rode uma vez: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.
pytest: command not found depois de instalarterminal aberto antes da instalação. Feche e reabra, ative o venv de novo.

Olhar de QA

Ler a saída do pytest com precisão é o que separa "quebrou" de um diagnóstico. FAILED é o seu assert dizendo que a realidade não bate com a expectativa, normalmente um achado de verdade. ERROR é algo que quebrou antes do teste rodar, quase sempre ambiente ou preparo. Confundir os dois faz você caçar um defeito que não existe, ou ignorar um que existe.

Terminou este módulo? Marque: o ✓ aparece no índice da trilha e a barra de progresso anda no começo do site. Fica salvo só no seu navegador.