Vitest
Unit test runner that reuses your Vite config, so if your app already builds with Vite, tests just run without a separate Jest config to maintain.
What is Vitest?
Vitest is a unit test runner built to reuse your existing Vite configuration, so a project that already builds with Vite doesn't need a separate, parallel Jest config with its own transform and alias setup. It aims for Jest-compatible APIs where it makes sense, so migrating an existing Jest test suite is usually low-friction, while offering faster startup and watch-mode performance thanks to Vite's own dev server machinery.
Key features
- Shares config, plugins, and path aliases with your existing
vite.config, no separate test-specific build setup - Jest-compatible API (
describe,it,expect) so most existing test knowledge and even many existing tests transfer directly - Fast watch mode powered by Vite's native ESM dev server, rather than a from-scratch bundling step per run
- Built-in support for mocking, snapshots, and coverage without extra plugins for the basics
- Native TypeScript and JSX support without a separate transpilation config to maintain
Who it's for
Any project already using Vite for its build, where adding Jest would mean maintaining two separate build pipelines. If your app doesn't use Vite at all, Jest or another runner may still be the more natural default.
Pricing
Free and open source.