Testes: Flaky Tests em Integração vs Infra
Testes: Flaky Tests (Intermitentes)
O Problema
Testes de integração que falham aleatoriamente ("flaky tests"): às vezes passam, às vezes falham, sem alteração de código.
Causas Comuns
- Race Conditions: O teste tenta verificar algo antes do banco de dados ou da API ter respondido.
- Estado Compartilhado: Um teste anterior sujou o banco e não limpou.
- Recursos de Infra: Timeout por lentidão do container/banco no CI.
Estratégias de Mitigação
- Wait, don't sleep: Nunca use
sleep(5). Use asserções de espera explícita (ex:await page.waitForSelector(),retry_until_success). - Isolamento: Garanta que cada teste roda em uma transação de banco que é revertida (rollback) ao final.
- Logs: Aumente a verbosidade dos logs no CI para identificar se a falha é timeout ou lógica.