vitest
160
总安装量
160
周安装量
#1618
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill vitest
Agent 安装分布
claude-code
120
opencode
99
gemini-cli
97
cursor
97
antigravity
85
Skill 文档
Vitest Best Practices
Comprehensive performance optimization and best practices guide for Vitest testing framework. Contains 44 rules across 8 categories, prioritized by impact to guide test writing, refactoring, and code review.
When to Apply
Reference these guidelines when:
- Writing new Vitest tests
- Debugging flaky or slow tests
- Setting up test configuration
- Reviewing test code in PRs
- Migrating from Jest to Vitest
- Optimizing CI/CD test performance
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Async Patterns | CRITICAL | async- |
| 2 | Test Setup & Isolation | CRITICAL | setup- |
| 3 | Mocking Patterns | HIGH | mock- |
| 4 | Performance | HIGH | perf- |
| 5 | Snapshot Testing | MEDIUM | snap- |
| 6 | Environment | MEDIUM | env- |
| 7 | Assertions | LOW-MEDIUM | assert- |
| 8 | Test Organization | LOW | org- |
Quick Reference
1. Async Patterns (CRITICAL)
async-await-assertions– Await async assertions to prevent false positivesasync-return-promises– Return promises from test functionsasync-fake-timers– Use fake timers for time-dependent codeasync-waitfor-polling– Use vi.waitFor for async conditionsasync-concurrent-expect– Use test context expect in concurrent testsasync-act-wrapper– Await user events to avoid act warningsasync-error-handling– Test async error handling properly
2. Test Setup & Isolation (CRITICAL)
setup-beforeeach-cleanup– Clean up state in afterEach hookssetup-restore-mocks– Restore mocks after each testsetup-avoid-shared-state– Avoid shared mutable state between testssetup-beforeall-expensive– Use beforeAll for expensive one-time setupsetup-reset-modules– Reset modules when testing module statesetup-test-factories– Use test factories for complex test data
3. Mocking Patterns (HIGH)
mock-vi-mock-hoisting– Understand vi.mock hoisting behaviormock-spyon-vs-mock– Choose vi.spyOn vs vi.mock appropriatelymock-implementation-not-value– Use mockImplementation for dynamic mocksmock-msw-network– Use MSW for network request mockingmock-avoid-overmocking– Avoid over-mockingmock-type-safety– Maintain type safety in mocksmock-clear-between-tests– Clear mock state between tests
4. Performance (HIGH)
perf-pool-selection– Choose the right pool for performanceperf-disable-isolation– Disable test isolation when safeperf-happy-dom– Use happy-dom over jsdom when possibleperf-sharding– Use sharding for CI parallelizationperf-run-mode-ci– Use run mode in CI environmentsperf-bail-fast-fail– Use bail for fast failure in CI
5. Snapshot Testing (MEDIUM)
snap-inline-over-file– Prefer inline snapshots for small valuessnap-avoid-large– Avoid large snapshotssnap-stable-serialization– Ensure stable snapshot serializationsnap-review-updates– Review snapshot updates before committingsnap-describe-intent– Name snapshot tests descriptively
6. Environment (MEDIUM)
env-per-file-override– Override environment per file when neededenv-setup-files– Use setup files for global configurationenv-globals-config– Configure globals consistentlyenv-browser-api-mocking– Mock browser APIs not available in test environment
7. Assertions (LOW-MEDIUM)
assert-specific-matchers– Use specific matchers over generic onesassert-edge-cases– Test edge cases and boundariesassert-one-assertion-concept– Test one concept per testassert-expect-assertions– Use expect.assertions for async testsassert-toequal-vs-tobe– Choose toBe vs toEqual correctly
8. Test Organization (LOW)
org-file-colocation– Colocate test files with source filesorg-describe-nesting– Use describe blocks for logical groupingorg-test-naming– Write descriptive test namesorg-test-skip-only– Use skip and only appropriately
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions – Category structure and impact levels
- Rule template – Template for adding new rules
- async-await-assertions – Example rule file
- mock-vi-mock-hoisting – Example rule file
Related Skills
- For TDD methodology, see
test-tddskill - For API mocking with MSW, see
test-mswskill - For TypeScript testing patterns, see
typescriptskill
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md