VS Code 集成测试运行助手
帮助你在 VS Code 源码仓库中准确运行和筛选集成测试。
技能只描述运行本地集成测试脚本及其过滤参数,未要求凭据、外部服务或额外权限,且仓库提供 MIT 许可和安全报告渠道;但未说明测试可能启动 Electron/扩展宿主、访问工作区数据或产生外部副作用,也没有用户确认、隔离、回滚和敏感数据处理指引,因此扣分。
SKILL.md 对 Node.js 集成测试与扩展宿主测试、参数组合、编译前置条件和单元测试区别有较一致说明;但未提供脚本实现、版本兼容矩阵、异常输入行为或可诊断的失败处理,静态证据不足以超过 10 分,故进一步扣分。
目标用户和场景明确:在 VS Code 仓库运行集成测试,并覆盖 macOS/Linux/Windows 命令形式及多种过滤方式;但未明确不适用场景、完整输入约束、操作系统差异边界、中文支持或大陆网络环境下依赖下载的可达性,因此扣分。
文档结构清晰,包含元数据、分类、脚本、参数、示例、编译要求和与单元测试的区别;仓库上下文提供 Microsoft 维护归属、版本、MIT 许可和项目仓库信息;但技能本身没有版本号、变更记录、维护责任链接、依赖安装步骤、FAQ、已知限制或故障排查,故扣分。
技能直接给出常见命令和参数组合,能够覆盖核心运行任务,输出是可直接执行的命令;但静态审查未执行脚本,且未证明参数描述与当前实现完全一致、结果报告如何获取或失败后如何修复,按静态上限不超过 7 分并扣分。
命令、路径和行为声明均可由仓库脚本和测试文件进一步核对,仓库也存在 CI 和测试材料;但所给 CI 工作流主要覆盖 chat-lib/chat-perf,并非该技能关键路径,未提供与此技能直接对应的执行结果或多平台证据,因此只能给有限可验证性。
- 运行前需确认依赖已安装且 JavaScript 编译产物存在;文档未给出标准安装流程或版本匹配要求。
- 集成测试可能启动 Electron 和扩展宿主,建议先确认工作区数据、网络访问和测试副作用范围;文档未说明隔离或清理策略。
- 不要把与 --run/--runGlob/--suite/--grep 的组合行为视为已验证事实,静态审查未执行脚本;遇到参数或平台差异时需核对实际脚本实现。
- 涉及依赖下载时,文档未说明大陆网络可达性或镜像配置。
它能做什么 & 适用场景
此技能面向 VS Code 仓库中的集成测试运行流程,覆盖 macOS/Linux 和 Windows 两套脚本。它区分运行在 Electron 中的 Node.js 集成测试与内置扩展中的扩展宿主测试。技能说明了如何使用文件、路径、测试名称和套件筛选器,并解释不同参数组合会运行哪些测试。测试依赖已生成的 JavaScript 输出,因此运行前需要启动 VS Code - Build watch 任务或完成编译。
提供并解释以下测试命令:macOS/Linux 使用 ./scripts/test-integration.sh,Windows 使用 .\scripts\test-integration.bat。指导使用 --run 按源文件运行 Node.js 集成测试,使用 --runGlob 按编译后的 .js 文件路径匹配测试文件,使用 --grep 按测试标题筛选测试用例,使用 --suite 选择扩展宿主测试套件,并使用 --help 查看帮助。说明无筛选时先运行全部 Node.js 集成测试再运行全部扩展宿主测试,也说明 --run、--runGlob、--grep 和 --suite 的组合行为。它还区分 .integrationTest.ts 集成测试与 .test.ts 单元测试,并说明其他选项可转发给 scripts/test.sh 的 Node.js 测试运行器。
- VS Code 仓库开发者需要运行全部 Node.js 集成测试和扩展宿主测试时,使用无参数的集成测试脚本。
- 开发搜索功能的工程师需要只运行特定集成测试文件时,使用 `--run` 指定 `src/` 下的源文件路径。
- 需要检查某个工作区区域的开发者,使用 `--runGlob` 按编译后的测试文件路径筛选测试。
- 扩展维护者需要只运行 Git、TypeScript、Emmet 或 API 套件时,使用 `--suite` 选择扩展宿主测试套件。
- 定位特定测试名称的开发者,使用 `--grep`,或将其与 `--suite`、`--run` 组合使用。
- 在区分单元测试和集成测试的项目贡献流程中,用该技能避免误用 `scripts/test.sh` 或集成测试脚本。
优缺点一览
- 明确区分 Node.js 集成测试和扩展宿主测试,减少测试类型混用。
- 支持按文件、编译后文件路径、测试名称和扩展套件进行筛选。
- 同时覆盖 macOS/Linux 与 Windows 的测试脚本。
- 说明了参数组合对测试范围的具体影响。
- 技能只描述运行流程,不包含测试实现、测试结果分析或故障自动修复。
- 测试必须针对已编译的 JavaScript 输出运行,缺少编译结果时无法按预期执行。
- 扩展宿主测试的其他选项不会在使用 `--suite` 时转发。
- 源材料未提供独立安装流程,也未说明除 macOS/Linux 和 Windows 外的平台支持。
如何安装
该技能属于 microsoft/vscode 仓库中 61 个技能的集合,文件路径为 .github/skills/integration-tests/SKILL.md。源材料未提供独立安装命令、客户端注册步骤或单独发布包;如需使用,应先获取 VS Code 仓库,并让兼容的 Agent Skills 客户端读取该路径。仓库地址:https://github.com/microsoft/vscode
如何使用
在 VS Code 仓库根目录执行对应平台的脚本。例如:./scripts/test-integration.sh --run src/vs/workbench/services/search/test/browser/search.integrationTest.ts;按路径筛选可执行 ./scripts/test-integration.sh --runGlob "/search//*.integrationTest.js";按测试名筛选可执行 ./scripts/test-integration.sh --grep "TextSearchProvider";只运行 Git 扩展测试可执行 ./scripts/test-integration.sh --suite git。Windows 使用 .\scripts\test-integration.bat 对应参数时应去掉示例中的多余空格。运行前确认 VS Code - Build watch 任务正在运行或编译已经完成。
对比同类
与 scripts/test.sh 或 runTests 相比,本技能用于 .integrationTest.ts 和扩展测试;scripts/test.sh 或 runTests 用于 .test.ts 单元测试。scripts/test.sh 只有显式传入 --runGlob **/*.integrationTest.js 时才会查找集成测试文件,而 scripts/test-integration.sh 不适合运行普通 .test.ts 文件。