O que é o Vitest? O framework de testes nativo do Vite
Vitest é um framework rápido de testes unitários construído sobre o Vite, que reutiliza sua configuração do Vite e oferece uma API compatível com o Jest, com feedback instantâneo em watch mode.
O Vitest trouxe a velocidade do Vite para os testes. Ele compartilha a configuração do Vite e o pipeline de transformação do seu projeto, então os testes rodam com o mesmo setup do seu app, e sua API espelha o Jest de forma próxima o suficiente para que a migração seja, em geral, indolor.
O que é o Vitest
Vitest é um framework de testes unitários e de integração movido pelo Vite. Ele oferece um test runner, uma API "expect" compatível com o Jest, mocking, coverage e snapshot testing. Como usa o pipeline de transformação do Vite (esbuild), ele lida com TypeScript, JSX e ESM sem configuração extra.
Como funciona
O Vitest reutiliza seu vite.config, então os testes resolvem módulos e aplicam transformações exatamente como sua aplicação. Seu watch mode é rápido porque re-executa apenas os testes afetados por uma mudança, aproveitando o grafo de módulos do Vite. A API compatível com o Jest significa que describe, it, expect e a maioria dos matchers funcionam como os desenvolvedores esperam.
Um exemplo de teste
A sintaxe é familiar para quem já usou o Jest.
import { expect, test } from "vitest";
test("adds numbers", () => {
expect(1 + 2).toBe(3);
});Papel em CI/CD
No CI, "vitest run" executa a suíte uma vez (sem watch) e sai com código diferente de zero em falhas. Suas transformações baseadas em esbuild deixam a inicialização e a execução rápidas, o que reduz a etapa de testes. O coverage pode ser habilitado com uma flag, e os testes podem passar por shard entre jobs. Runners gerenciados mais rápidos, somados ao auto-retry em falhas transitórias, mantêm suítes grandes rápidas e estáveis.
Alternativas
O Jest é o framework estabelecido, com o maior ecossistema, e é compatível em API com o Vitest. Mocha com Chai é uma alternativa modular. O Vitest é a escolha natural para projetos baseados em Vite e quando a velocidade dos testes e uma configuração compartilhada importam.
Principais conclusões
- Vitest é um framework de testes rápido e nativo do Vite, com uma API compatível com o Jest.
- Ele reutiliza sua configuração do Vite, então os testes transformam exatamente como seu app.
- Use "vitest run" no CI; ele sai com código diferente de zero em falhas e roda rápido.