Files
everything-claude-code/docs/pt-BR/commands/test-coverage.md
2026-03-21 14:06:49 +01:00

70 lines
2.9 KiB
Markdown

# Cobertura de Testes
Analise cobertura de testes, identifique lacunas e gere testes faltantes para alcançar cobertura de 80%+.
## Passo 1: Detectar Framework de Teste
| Indicator | Coverage Command |
|-----------|-----------------|
| `jest.config.*` or `package.json` jest | `npx jest --coverage --coverageReporters=json-summary` |
| `vitest.config.*` | `npx vitest run --coverage` |
| `pytest.ini` / `pyproject.toml` pytest | `pytest --cov=src --cov-report=json` |
| `Cargo.toml` | `cargo llvm-cov --json` |
| `pom.xml` with JaCoCo | `mvn test jacoco:report` |
| `go.mod` | `go test -coverprofile=coverage.out ./...` |
## Passo 2: Analisar Relatório de Cobertura
1. Rode o comando de cobertura
2. Parseie a saída (resumo em JSON ou saída de terminal)
3. Liste arquivos **abaixo de 80% de cobertura**, ordenados do pior para o melhor
4. Para cada arquivo abaixo da meta, identifique:
- Funções ou métodos sem teste
- Cobertura de branch faltante (if/else, switch, caminhos de erro)
- Código morto que infla o denominador
## Passo 3: Gerar Testes Faltantes
Para cada arquivo abaixo da meta, gere testes seguindo esta prioridade:
1. **Happy path** — Funcionalidade principal com entradas válidas
2. **Tratamento de erro** — Entradas inválidas, dados ausentes, falhas de rede
3. **Casos de borda** — Arrays vazios, null/undefined, valores de fronteira (0, -1, MAX_INT)
4. **Cobertura de branch** — Cada if/else, caso de switch, ternário
### Regras para Geração de Testes
- Coloque testes adjacentes ao código-fonte: `foo.ts``foo.test.ts` (ou convenção do projeto)
- Use padrões de teste existentes do projeto (estilo de import, biblioteca de asserção, abordagem de mocking)
- Faça mock de dependências externas (banco, APIs, sistema de arquivos)
- Cada teste deve ser independente — sem estado mutável compartilhado entre testes
- Nomeie testes de forma descritiva: `test_create_user_with_duplicate_email_returns_409`
## Passo 4: Verificar
1. Rode a suíte completa de testes — todos os testes devem passar
2. Rode cobertura novamente — confirme a melhoria
3. Se ainda estiver abaixo de 80%, repita o Passo 3 para as lacunas restantes
## Passo 5: Reportar
Mostre comparação antes/depois:
```
Coverage Report
──────────────────────────────
File Before After
src/services/auth.ts 45% 88%
src/utils/validation.ts 32% 82%
──────────────────────────────
Overall: 67% 84% ✅
```
## Áreas de Foco
- Funções com branching complexo (alta complexidade ciclomática)
- Error handlers e blocos catch
- Funções utilitárias usadas em todo o codebase
- Handlers de endpoint de API (fluxo request → response)
- Casos de borda: null, undefined, string vazia, array vazio, zero, números negativos