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:
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): oassertdo teste foi verdadeiro.FAILED(vermelho): oassertfoi falso, ou a função explodiu. O pytest imprime a linha doasserte 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
| Mensagem | O 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 pytest | o 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.db | você 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 instalar | terminal 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.