Vitest vs Jest em CI: velocidade, ESM e migração
O tempo de execução dos testes costuma ser a etapa mais longa do CI - Vitest e Jest diferem bastante em velocidade e ESM.
Ambos rodam testes JS/TS; o Vitest é nativo do Vite e ESM-first, o Jest é o padrão consolidado com um ecossistema enorme.
| Jest | Vitest | |
|---|---|---|
| Suporte a ESM | Desajeitado (transforms) | Nativo |
| Velocidade | Boa | Muitas vezes mais rápido (transform do Vite) |
| Configuração | Madura, muitos presets | Mínima, alinhada ao Vite |
| Ecossistema | O maior | Crescendo, API compatível com Jest |
Em CI
O Vitest tende a ser mais rápido e evita as dores de cabeça de transform de ESM que causam as falhas "Cannot use import statement" do Jest. O Jest continua sendo a escolha segura para suítes grandes e maduras.
Ambos podem estourar a memória
Suítes grandes estouram a memória dos workers de CI em qualquer runner - limite os workers e dimensione a memória de qualquer forma.
O veredito
Projeto novo ou com muito ESM: Vitest. Suíte Jest grande já existente: fique no Jest a menos que a dor com ESM force a mudança.