Vitest
antfu/skillsVitest is a modern, Vite-powered testing framework that offers Jest-compatible APIs, native support for ESM, TypeScript, and JSX, making it ideal for developers seeking fast, integrated testing solutions. It features rapid test updates via HMR-like processes, parallel execution, comprehensive coverage tools, and utilities for mocking, snapshot testing, and fixtures. Designed for those working within Vite projects, it simplifies configuring, running, and maintaining test suites with minimal setup.
Vitest is a next-generation testing framework powered by Vite. It provides a Jest-compatible API with native ESM, TypeScript, and JSX support out of the box. Vitest shares the same config, transformers, resolvers, and plugins with your Vite app. Key Features:
- Vite-native: Uses Vite's transformation pipeline for fast HMR-like test updates
- Jest-compatible: Drop-in replacement for most Jest test suites
- Smart watch mode: Only reruns affected tests based on module graph
- Native ESM, TypeScript, JSX support without configuration
- Multi-threaded workers for parallel test execution
- Built-in coverage via V8 or Istanbul
- Snapshot testing, mocking, and spy utilities
The skill is based on Vitest 3.x, generated at 2026-01-28.
Core
Topic Description Reference Configuration Vitest and Vite config integration, defineConfig usage core-config CLI Command line interface, commands and options core-cli Test API test/it function, modifiers like skip, only, concurrent core-test-api Describe API describe/suite for grouping tests and nested suites core-describe Expect API Assertions with toBe, toEqual, matchers and asymmetric matchers core-expect Hooks beforeEach, afterEach, beforeAll, afterAll, aroundEach core-hooks
Features
Topic Description Reference Mocking Mock functions, modules, timers, dates with vi utilities features-mocking Snapshots Snapshot testing with toMatchSnapshot and inline snapshots features-snapshots Coverage Code coverage with V8 or Istanbul providers features-coverage Test Context Test fixtures, context.expect, test.extend for custom fixtures features-context Concurrency Concurrent tests, parallel execution, sharding features-concurrency Filtering Filter tests by name, file patterns, tags features-filtering
Advanced
Topic Description Reference Vi Utilities vi helper: mock, spyOn, fake timers, hoisted, waitFor advanced-vi Environments Test environments: node, jsdom, happy-dom, custom advanced-environments Type Testing Type-level testing with expectTypeOf and assertType advanced-type-testing Projects Multi-project workspaces, different configs per project advanced-projects
GitHub Owner
Owner: antfu
GitHub Links
- Twitter: https://twitter.com/antfu7
- YouTube: https://www.youtube.com/c/AnthonyFu7
- Instagram: https://www.instagram.com/antfu7
Files
core-config
core-cli
core-test-api
core-describe
core-expect
core-hooks
features-mocking
features-snapshots
features-coverage
features-context
features-concurrency
features-filtering
advanced-vi
advanced-environments
advanced-type-testing
advanced-projects
SKILL.md
name: vitest description: Vitest fast unit testing framework powered by Vite with Jest-compatible API. Use when writing tests, mocking, configuring coverage, or working with test filtering and fixtures. metadata: author: Anthony Fu version: "2026.1.28" source: Generated from https://github.com/vitest-dev/vitest, scripts located at https://github.com/antfu/skills
Vitest is a next-generation testing framework powered by Vite. It provides a Jest-compatible API with native ESM, TypeScript, and JSX support out of the box. Vitest shares the same config, transformers, resolvers, and plugins with your Vite app. Key Features:
- Vite-native: Uses Vite's transformation pipeline for fast HMR-like test updates
- Jest-compatible: Drop-in replacement for most Jest test suites
- Smart watch mode: Only reruns affected tests based on module graph
- Native ESM, TypeScript, JSX support without configuration
- Multi-threaded workers for parallel test execution
- Built-in coverage via V8 or Istanbul
- Snapshot testing, mocking, and spy utilities
The skill is based on Vitest 3.x, generated at 2026-01-28.
Core
| Topic | Description | Reference |
|---|---|---|
| Configuration | Vitest and Vite config integration, defineConfig usage | core-config |
| CLI | Command line interface, commands and options | core-cli |
| Test API | test/it function, modifiers like skip, only, concurrent | core-test-api |
| Describe API | describe/suite for grouping tests and nested suites | core-describe |
| Expect API | Assertions with toBe, toEqual, matchers and asymmetric matchers | core-expect |
| Hooks | beforeEach, afterEach, beforeAll, afterAll, aroundEach | core-hooks |
Features
| Topic | Description | Reference |
|---|---|---|
| Mocking | Mock functions, modules, timers, dates with vi utilities | features-mocking |
| Snapshots | Snapshot testing with toMatchSnapshot and inline snapshots | features-snapshots |
| Coverage | Code coverage with V8 or Istanbul providers | features-coverage |
| Test Context | Test fixtures, context.expect, test.extend for custom fixtures | features-context |
| Concurrency | Concurrent tests, parallel execution, sharding | features-concurrency |
| Filtering | Filter tests by name, file patterns, tags | features-filtering |
Advanced
| Topic | Description | Reference |
|---|---|---|
| Vi Utilities | vi helper: mock, spyOn, fake timers, hoisted, waitFor | advanced-vi |
| Environments | Test environments: node, jsdom, happy-dom, custom | advanced-environments |
| Type Testing | Type-level testing with expectTypeOf and assertType | advanced-type-testing |
| Projects | Multi-project workspaces, different configs per project | advanced-projects |