A Vite-native test runner that's dramatically faster than Jest, with a Jest-compatible API and first-class TypeScript and ESM support.
Vitest is a unit and integration test runner built on top of Vite. It uses Vite's transform pipeline to compile your TypeScript, JSX, and ESM tests in milliseconds, then runs them in parallel worker processes. The result is a test runner that feels like Jest but starts instantly, watches changes with HMR-grade performance, and works out of the box with native ESM and TypeScript. The Jest compatibility is real: `describe`, `it`, `expect`, `vi.fn()`, `vi.mock()`, snapshot testing, coverage, watch mode — all there, mostly API-compatible. For most teams, migrating from Jest to Vitest is a config file change, not a test rewrite. Where Vitest pulls ahead of Jest: ESM first (no more `transformIgnorePatterns` hacks), Vite config reuse (the same aliases, plugins, and loaders for app and tests), a watch mode that updates in tens of milliseconds, and UI mode with a visual test runner that's actually useful for debugging.
Reuses your Vite config — same aliases, plugins, transforms as your app.
No babel-jest, no ts-jest configuration hell — it just works.
`describe`, `it`, `expect`, mocks, snapshots — migration is usually a config swap.
Re-runs only the affected tests; HMR-fast feedback in the terminal.
A web UI for the test runner — useful for debugging complex test setups.
Login to comment
No comments yet