SKILL.md
唯讀
名稱
vitest
描述
Vitest API 與設定參考指南(相容 Jest)—— 涵蓋 vi.* 模擬(mocking)、spy 監聽器、虛擬定時器(fake timers)、程式碼覆蓋率設定、fixtures、快照測試(snapshots)與測試篩選。適用於 Monorepo 中任何與 Vitest API 及設定相關的疑問;若為 Studio 特定的測試策略或元件測試設定,請先參閱 studio-testing 與 studio-mock-api-tests。
Vitest 是由 Vite 驅動的新一代測試框架,開箱即用支援原生 ESM、TypeScript 與 JSX,並提供相容 Jest 的 API。Vitest 與你的 Vite 應用程式共用相同的設定檔、轉換器(transformers)、解析器(resolvers)及外掛(plugins)。
核心特色:
- 原生 Vite 支援:運用 Vite 的轉換管線,實現類似 HMR 的超快速測試更新
- 相容 Jest:幾乎可直接無縫替換絕大多數的 Jest 測試套件
- 智慧 Watch 模式:根據模組關聯圖(module graph),僅重新執行受影響的測試
- 免設定支援原生 ESM、TypeScript 及 JSX
- 多執行緒 Worker:支援平行執行測試
- 內建覆蓋率工具:支援 V8 或 Istanbul
- 完整的快照測試、Mock 模擬與 Spy 監聽工具
本 Skill 基於 Vitest 3.x,建立時間為 2026-01-28。
Core
| 主題 | 說明 | 參考資料 |
|---|---|---|
| Configuration | Vitest 與 Vite 的設定整合,以及 defineConfig 的使用方式 | core-config |
| CLI | 命令列介面(Command line interface)、指令與參數選項 | core-cli |
| Test API | test/it 函式,以及 skip、only、concurrent 等修飾符 | core-test-api |
| Describe API | 用於測試分組與巢狀測試套件的 describe/suite | core-describe |
| Expect API | 斷言機制,包含 toBe、toEqual、匹配器(matchers)與非對稱匹配器 | core-expect |
| Hooks | beforeEach、afterEach、beforeAll、afterAll、aroundEach 生命週期鉤子 | core-hooks |
Features
| 主題 | 說明 | 參考資料 |
|---|---|---|
| Mocking | 透過 vi 工具函式模擬函式、模組、定時器與日期 | features-mocking |
| Snapshots | 使用 toMatchSnapshot 與行內快照(inline snapshots)進行快照測試 | features-snapshots |
| Coverage | 使用 V8 或 Istanbul 提供者進行程式碼覆蓋率分析 | features-coverage |
| Test Context | 測試 Fixtures、context.expect 以及透過 test.extend 自訂 fixture | features-context |
| Concurrency | 並行測試(Concurrent tests)、平行執行與分片(sharding) | features-concurrency |
| Filtering | 依名稱、檔案比對樣式或標籤篩選測試 | features-filtering |
Advanced
| 主題 | 說明 | 參考資料 |
|---|---|---|
| Vi Utilities | vi 輔助工具:mock、spyOn、fake timers、hoisted、waitFor | advanced-vi |
| Environments | 測試環境設定:node、jsdom、happy-dom、自訂環境 | advanced-environments |
| Type Testing | 使用 expectTypeOf 與 assertType 進行型別層級測試 | advanced-type-testing |
| Projects | 多專案工作區(Multi-project workspaces),支援各專案獨立設定 | advanced-projects |






