Skip to content
Latchkey

Vitest vs uvu: Testes JS Completos vs Minimalistas

O Vitest é um test runner completo e nativo do Vite; o uvu é um runner minúsculo e ultrarrápido, com quase nenhum overhead para projetos pequenos.

O Vitest oferece um conjunto rico de funcionalidades (mocking, cobertura, watch UI, ESM/TS prontos para uso) e compartilha a config com o Vite. O uvu é deliberadamente minimalista: alguns kilobytes, inicialização muito rápida e apenas a API necessária para escrever testes.

Vitestuvu
EscopoCompleto (mocks, cobertura, UI)Núcleo mínimo
Overhead de inicializaçãoMaior (mais maquinário)Muito baixo
Integração com o ViteNativa, compartilha a configNenhuma
TS/ESMEmbutidoTraga seu próprio loader
Melhor encaixeApps, suítes grandesLibs minúsculas, microbenchmarks

Onde o Vitest vence

Para aplicações e suítes maiores, o Vitest fornece mocking, snapshots, cobertura e uma watch UI sem juntar ferramentas na força, e reutiliza sua config e transformações do Vite (TS, JSX, aliases). Ele é o padrão prático para a maioria dos projetos modernos de front-end e Node.

Onde o uvu vence

Para uma biblioteca pequena em que você quer a inicialização mais rápida possível e o menor peso de dependências, o uvu é excelente: instalação mínima, execuções quase instantâneas e uma API pequena. Ele brilha em pacotes minúsculos e verificações rápidas onde as funcionalidades do Vitest são desnecessárias.

Em CI

O uvu pode fazer a execução de testes de um pacote pequeno parecer instantânea; o Vitest escala para suítes grandes com paralelismo e cobertura. Adeque o runner ao tamanho do projeto: minimalista para libs minúsculas, completo assim que você precisar de mocks e cobertura.

O veredito

Use o Vitest para apps e qualquer suíte que precise de mocking, cobertura ou integração com o Vite; use o uvu para bibliotecas minúsculas em que a velocidade de inicialização e um footprint mínimo importam mais.

Guias relacionados