Skip to content
Latchkey

uvu vs Vitest: runner minúsculo ou framework completo?

uvu é um test runner extremamente pequeno e rápido com recursos mínimos; Vitest é um framework rico em recursos baseado em Vite com mocks, snapshots e cobertura.

uvu é um runner minúsculo e leve em dependências, focado em velocidade bruta e inicialização rápida, com uma API mínima e sem mocking, snapshots ou cobertura nativos - você adiciona ferramentas conforme necessário. Vitest é um framework completo que reutiliza a configuração do Vite, oferece uma API semelhante à do Jest, watch mode, mocking, snapshots e cobertura, servindo a aplicações modernas Vite/TS. uvu trata de tamanho mínimo e velocidade; Vitest trata de recursos e integração.

uvuVitest
Tamanho / inicializaçãoMinúsculo, muito rápidoMaior, rápido (Vite)
RecursosMínimosMocks, snapshots, cobertura
TS / ViteConfiguração manualDe primeira classe
Watch modeNãoSim (HMR)
Melhor paraBibliotecas pequenas, velocidadeAplicações Vite/TS

No CI

uvu é ótimo para pequenas bibliotecas que querem dependências mínimas e a inicialização mais rápida possível, aceitando que você mesmo configure TS, cobertura e mocking. Vitest serve a aplicações que querem um runner integrado e completo, com cobertura e snapshots nativos. Ambos paralelizam no CI; escolha uvu para minimalismo, Vitest para recursos.

Acelere

Faça cache das dependências e distribua (shard) os testes entre jobs para reduzir o tempo total. Ambos rodam em runners de CI; runners gerenciados mais rápidos encurtam a execução dos testes e as etapas de transformação.

O veredito

Se está escrevendo uma pequena biblioteca que preza por tamanho mínimo e inicialização rápida: uvu. Se está construindo uma aplicação Vite ou TypeScript e quer mocks, snapshots, cobertura e watch mode: Vitest. A maioria das equipes de aplicações escolhe Vitest; uvu serve a bibliotecas minimalistas e microbenchmarks.

Guias relacionados