用途
该技能为 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 实现红-绿-重构循环。
- 搭建扩展项目测试基础设施。
- 调试不稳定或失败的测试。
- 提升现有代码的测试覆盖率。
限制
资料未提供该技能的具体安装方式、收费模式、平台兼容性范围或实际使用效果数据,这些信息暂未提供。技能内容以代码示例和配置为主,实际应用需结合具体扩展项目调整。