Pular para o conteúdo
Tecnologia

Vitest é Jest reimaginado para velocidade. Usa Vite under the hood, ESM nativo, HMR para testes. Migração de Jest é trivial.

Conceitos Principais

Vite Integration

Reutiliza config do Vite. Mesma resolução de módulos. Plugins Vite funcionam em testes. HMR para re-run instantâneo.

Jest Compatibility

API idêntica: expect, describe, test, beforeEach. Mocks compatíveis. Migration automática via codemod.

ESM Nativo

Suporte ESM real. Não precisa transformar node_modules. Top-level await funciona. Mais rápido que transpilação.

UI Mode

Interface visual para testes. Veja falhas em tempo real. Debug interativo. Melhor DX que terminal.

Passo a Passo

  1. Instale Vitest: npm install -D vitest. package.json: "test": "vitest". Projetos Vite: zero config extra. Detecta vite.config.ts.
  2. Migre de Jest: Renomeie jest.config.js → vitest.config.ts. Mude imports: @testing-library/jest-dom → @testing-library/vitest. Rode: npx vitest.
  3. Configure vitest.config: import { defineConfig } from "vitest/config". test: { globals: true, environment: "jsdom" }. Mesmas opções do Jest.
  4. UI Mode: npx vitest --ui. Abre browser. Veja testes em tempo real. Filtre por arquivo, status. Debug com devtools.
  5. Coverage: Install @vitest/coverage-v8. vitest --coverage. Istanbul ou V8 coverage. Mesmos reports que Jest.

Boas Praticas

Recomendacoes

• Use globals: true para API sem imports

• Aproveite HMR: watch mode sempre ligado

• UI mode para debug complexo

• Compartilhe config com vite.config

• Parallel execution default (mais rápido)

Erros Comuns

Evite estes erros

• Não aproveitar config Vite compartilhada

• Forçar CommonJS (ESM é mais rápido)

• Não usar UI mode (melhor DX)

• Ignorar mensagens de deprecation

Checklist

  • Vitest instalado
  • Config compartilhada com Vite
  • Testes migrando de Jest (se aplicável)
  • Watch mode funcionando
  • UI mode testado
  • Coverage configurado