SuperAPI AI 工具集

vscode-tdd-expert

测试与质量

查看项目

更新于 10-16 03:52

技能介绍

用途

该技能为 VS Code 扩展开发提供严格的测试驱动开发(TDD)指导,采用 t-wada 方法论并适配扩展开发场景。它帮助开发者在编写生产代码之前先编写测试,通过红-绿-重构循环保证代码质量。

主要能力

  • 提供 TDD 三定律与红-绿-重构循环的实践指导。
  • 覆盖 VS Code 扩展测试技术栈:@vscode/test-cli、@vscode/test-electron、vitest、@vitest/coverage-v8。
  • 提供测试目录结构建议,区分单元测试、集成测试、端到端测试、fixtures 与 helpers。
  • 针对命令、WebView、终端管理器、配置、激活等扩展组件给出测试模式与示例代码。
  • 提供 VS Code API 模拟策略,包括 ExtensionContext、Terminal、window 方法等的 mock 与 spy。
  • 覆盖异步操作、事件发射器、Disposable、错误处理等常见测试场景。
  • 提供覆盖率配置(v8 provider、阈值 80%)与 TDD 质量门禁脚本。
  • 总结最佳实践(测试命名、Arrange-Act-Assert、测试隔离)与常见陷阱(异步不稳定、全局状态污染、清理不完整)及解决方案。

使用方式

技能提供 TDD 工作流命令:

# Red phase - Write failing test
npm run tdd:red

# Green phase - Minimal implementation
npm run tdd:green

# Refactor phase - Improve code
npm run tdd:refactor

# Verify TDD compliance
npm run tdd:quality-gate

所需依赖:

{
  "devDependencies": {
    "@vscode/test-cli": "^0.0.10",
    "@vscode/test-electron": "^2.4.1",
    "vitest": "^3.0.0",
    "@vitest/coverage-v8": "^3.0.0"
  }
}

测试配置(vitest.config.ts):

import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    include: ['src/test/**/*.test.ts'],
    globals: true,
    testTimeout: 20000,
    environment: 'node',
    coverage: {
      provider: 'v8',
      include: ['src/**/*.ts'],
      exclude: ['src/test/**', '**/*.d.ts'],
    },
  },
});

覆盖率命令:

# Run tests with coverage
npm run test:coverage
# or: npx vitest run --coverage

# Generate HTML report (included via reporter config above)
# Open coverage/index.html after running coverage

# Check coverage thresholds (enforced via thresholds config above)
npx vitest run --coverage

适用场景

  • 在实现新扩展功能前先编写测试。
  • 为 WebView 组件创建完整测试套件。
  • 测试终端管理与生命周期逻辑。
  • 为 VS Code API 实现红-绿-重构循环。
  • 搭建扩展项目测试基础设施。
  • 调试不稳定或失败的测试。
  • 提升现有代码的测试覆盖率。

限制

资料未提供该技能的具体安装方式、收费模式、平台兼容性范围或实际使用效果数据,这些信息暂未提供。技能内容以代码示例和配置为主,实际应用需结合具体扩展项目调整。