Pular para o conteúdo
Tecnologia

Coverage mede linhas executadas por testes. Métrica importante mas não conta história completa. 100% coverage ≠ zero bugs.

Conceitos Principais

Line Coverage

Porcentagem de linhas executadas. Mais básica. 80%+ geralmente aceitável.

Branch Coverage

Testa todos if/else paths. Mais rigorosa que line. Detecta lógica não testada.

Function Coverage

Porcentagem de funções chamadas. Identifica código morto ou não testado.

Mutation Testing

Introduz bugs propositais. Testes devem falhar. Mede qualidade dos testes.

Passo a Passo

  1. Generate Coverage: Jest: jest --coverage. Vitest: vitest --coverage. Relatório em coverage/lcov-report/index.html.
  2. Analise Relatório: Veja arquivos não cobertos. Branches não testados. Ignore getters/setters triviais.
  3. Configure Thresholds: jest.config.js: coverageThreshold { global: { branches: 80, functions: 80, lines: 80 } }. Build falha se não atingir.
  4. CI Integration: Upload para Codecov ou Coveralls. Badge no README. Track coverage over time. Block PR se cai.
  5. Priorize Crítico: Não persiga 100%. Foque: lógica de negócio, handlers de erro, cálculos complexos.

Boas Praticas

Recomendacoes

• Target 80%+ para código crítico

• Branch coverage > line coverage

• Ignore código trivial

• Track coverage over time

• Block PRs que reduzem coverage

• Quality > quantity

Erros Comuns

Evite estes erros

• Perseguir 100% em tudo

• Testar apenas para aumentar número

• Não testar branches

• Ignorar coverage reports

• Coverage baixo em código crítico

Checklist

  • Coverage configurado
  • Relatórios HTML gerados
  • Thresholds definidos
  • CI tracking coverage
  • Código crítico > 80%
  • Branch coverage medido