mcpField
V
vitest-v4

vitest-v4

github.com/blockmatic测试与质量1205 次安装4 周前更新
代码仓库

关于 vitest-v4

vitest-v4 是面向开发者的 Vitest 测试参考技能,适用于编写、调试、审查和优化测试。其 44 条规则分为八类,并按优先级排列,涵盖异步模式到测试组织。

主要功能

  1. 01涵盖八类共 44 条规则
  2. 02按影响程度排列指导建议
  3. 03覆盖异步测试与隔离
  4. 04指导 Mock 和性能优化
  5. 05涉及快照与断言

适用场景

  1. 01编写新的 Vitest 测试
  2. 02排查不稳定或缓慢的测试
  3. 03审查拉取请求中的测试代码
  4. 04优化 CI 测试性能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/blockmatic/basilic-skills --skill vitest-v4

安装后在 Claude Code 中输入/vitest-v4确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
README.md
assets/templates/
_template.md
references/
_sections.md
assert-edge-cases.md
assert-expect-assertions.md
assert-one-assertion-concept.md
assert-specific-matchers.md
assert-toequal-vs-tobe.md
async-act-wrapper.md
async-await-assertions.md
async-concurrent-expect.md
async-error-handling.md
async-fake-timers.md
async-return-promises.md
async-waitfor-polling.md
compiled.md
env-browser-api-mocking.md
env-globals-config.md
env-per-file-override.md
env-setup-files.md
mock-avoid-overmocking.md
mock-clear-between-tests.md
mock-implementation-not-value.md
mock-msw-network.md
mock-spyon-vs-mock.md
mock-type-safety.md
mock-vi-mock-hoisting.md
org-describe-nesting.md
org-file-colocation.md

详细介绍

Vitest 最佳实践

Vitest 测试框架的全面性能优化与最佳实践指南。包含 8 个类别中的 44 条规则,按影响程度排序,指导测试编写、重构和代码审查。

适用场景

以下情况请参考这些指南:

  • 编写新的 Vitest 测试
  • 调试不稳定或运行缓慢的测试
  • 设置测试配置
  • 在 PR 中审查测试代码
  • 从 Jest 迁移到 Vitest
  • 优化 CI/CD 测试性能

按优先级划分的规则类别

优先级类别影响前缀
1异步模式CRITICALasync-
2测试设置与隔离CRITICALsetup-
3模拟模式HIGHmock-
4性能HIGHperf-
5快照测试MEDIUMsnap-
6环境MEDIUMenv-
7断言LOW-MEDIUMassert-
8测试组织LOWorg-

快速参考

1. 异步模式(CRITICAL)
  • async-await-assertions - 等待异步断言完成,避免误报
  • async-return-promises - 从测试函数返回 Promise
  • async-fake-timers - 对依赖时间的代码使用模拟计时器
  • async-waitfor-polling - 使用 vi.waitFor 检查异步条件
  • async-concurrent-expect - 在并发测试中使用测试上下文的 expect
  • async-act-wrapper - 等待用户事件完成,避免 act 警告
  • async-error-handling - 正确测试异步错误处理
2. 测试设置与隔离(CRITICAL)
  • setup-beforeeach-cleanup - 在 afterEach 钩子中清理状态
  • setup-restore-mocks - 在每个测试后还原模拟
  • setup-avoid-shared-state - 避免测试间共享可变状态
  • setup-beforeall-expensive - 使用 beforeAll 执行开销较大的一次性设置
  • setup-reset-modules - 测试模块状态时重置模块
  • setup-test-factories - 使用测试工厂创建复杂测试数据
3. 模拟模式(HIGH)
  • mock-vi-mock-hoisting - 理解 vi.mock 的提升行为
  • mock-spyon-vs-mock - 根据情况选择 vi.spyOn 或 vi.mock
  • mock-implementation-not-value - 对动态模拟使用 mockImplementation
  • mock-msw-network - 使用 MSW 模拟网络请求
  • mock-avoid-overmocking - 避免过度模拟
  • mock-type-safety - 确保模拟具有类型安全性
  • mock-clear-between-tests - 清除测试间的模拟状态
4. 性能(HIGH)
  • perf-pool-selection - 选择合适的进程池以提升性能
  • perf-disable-isolation - 在安全的情况下禁用测试隔离
  • perf-happy-dom - 在可行时优先使用 happy-dom 而非 jsdom
  • perf-sharding - 使用分片实现 CI 并行化
  • perf-run-mode-ci - 在 CI 环境中使用 run 模式
  • perf-bail-fast-fail - 使用 bail 在 CI 中快速失败
5. 快照测试(MEDIUM)
  • snap-inline-over-file - 小型值优先使用内联快照
  • snap-avoid-large - 避免大型快照
  • snap-stable-serialization - 确保快照序列化稳定
  • snap-review-updates - 提交前审查快照更新
  • snap-describe-intent - 为快照测试使用描述性名称
6. 环境(MEDIUM)
  • env-per-file-override - 必要时按文件覆盖环境
  • env-setup-files - 使用设置文件进行全局配置
  • env-globals-config - 统一配置全局变量
  • env-browser-api-mocking - 模拟测试环境中不可用的浏览器 API
7. 断言(LOW-MEDIUM)
  • assert-specific-matchers - 优先使用专用匹配器,而非通用匹配器
  • assert-edge-cases - 测试边界情况和边界值
  • assert-one-assertion-concept - 每个测试只测试一个概念
  • assert-expect-assertions - 在异步测试中使用 expect.assertions
  • assert-toequal-vs-tobe - 正确选择 toBe 或 toEqual
8. 测试组织(低)
  • org-file-colocation - 将测试文件与源文件放在一起
  • org-describe-nesting - 使用 describe 块进行逻辑分组
  • org-test-naming - 编写描述性测试名称
  • org-test-skip-only - 适当使用 skip 和 only

使用方法

阅读各个参考文件,了解详细说明和代码示例:

适用范围

  • 不涵盖应用 Playwright E2E — 临时浏览器自动化请参阅 playwright-v1;应用 E2E 规范由使用该技能的仓库中的规则规定
  • 使用 inject() 和数据库隔离的 HTTP 应用测试(PGLite、*.spec.ts 与 *.test.ts)属于使用该技能的仓库的范畴 — 请遵循项目的 Fastify 测试规则,不要仅依赖此技能

相关技能

  • 有关 TDD 方法论,请参阅 test-tdd 技能
  • 有关使用 MSW 进行 API 模拟,请参阅 test-msw 技能
  • 有关 TypeScript 测试模式,请参阅 typescript 技能

完整编译文档

如需查看包含所有展开规则的完整指南:references/compiled.md

评论

支持 Markdown