SuperAPI AI 工具集

vitest-skill

测试与质量

查看项目

更新于 10-15 11:38

技能介绍

用途

Vitest 测试技能用于在 JavaScript/TypeScript 项目中生成 Vitest 测试。Vitest 具备 Vite 原生的速度,提供与 Jest 兼容的 API,并支持 ESM 与 HMR。当用户提到 "Vitest" 等关键词时,可使用该技能生成相应测试代码。

主要能力

  • 基础测试:使用 describe、it、expect、vi、beforeEach 组织测试,例如对 Calculator 的 add 与 divide 行为进行断言。
  • Mocking:使用 vi 替代 jest,包括模块 Mock(vi.mock)、函数 Mock(vi.fn)、Spy(vi.spyOn)以及定时器控制(vi.useFakeTimers、vi.advanceTimersByTime、vi.runAllTimers、vi.useRealTimers)。
  • 源码内测试(In-Source Testing):在源码文件中通过 import.meta.vitest 编写与代码同位置的测试。
  • 快照测试:支持 toMatchSnapshot 与 toMatchInlineSnapshot。
  • React 组件测试:结合 @testing-library/react 的 render、screen 进行组件渲染与断言。
  • 反模式对照:例如应使用 vi.fn() 而非 jest.fn(),使用 vi.mock() 而非 jest.mock(),并建议使用 TypeScript 严格模式。

使用方式

常用命令:

  • 运行一次:npx vitest run
  • 监听模式(默认):npx vitest
  • UI:npx vitest --ui
  • 覆盖率:npx vitest --coverage
  • 指定文件:npx vitest run src/math.test.ts
  • 过滤:npx vitest run -t "adds"

配置示例(vitest.config.ts):

import { defineConfig } from 'vitest/config';
export default defineConfig({
  test: {
    globals: true,
    environment: 'jsdom',
    coverage: { provider: 'v8', reporter: ['text', 'html'] },
    include: ['src/**/*.{test,spec}.{js,ts,tsx}'],
    includeSource: ['src/**/*.{js,ts}'],
  },
});

适用场景

适用于需要为 JavaScript/TypeScript 项目编写测试的场景,包括单元测试、Mock 与 Spy、定时器测试、快照测试、React 组件测试、源码内测试,以及 API/集成测试与 CI/CD 集成等(参考 playbook 章节涵盖生产配置、Mocking 模式、React Testing Library、快照与内联快照、表驱动测试、源码内测试、API/集成测试、CI/CD 集成、调试速查与最佳实践清单)。

限制

资料中未提供关于收费、价格、平台支持范围或具体效果的信息,暂未提供。