VS Code 单元测试助手
在 VS Code 源码仓库中按文件、测试名称或匹配模式运行单元测试。
技能仅指导运行测试,未要求凭据、秘密或不必要的外部访问,也区分了首选工具与本地脚本;但对脚本下载 Electron、网络依赖、用户确认、数据流、失败后的回滚或隔离没有说明,因此扣分。
文档内部基本一致,覆盖 runTests、macOS/Linux 和 Windows 脚本、过滤、覆盖率、超时及编译前置条件;但未提供该技能关键路径的可执行复现、版本兼容矩阵或针对异常参数和下载失败的诊断处理,按静态校准不超过10分。
目标场景和主要输入参数较清楚,涵盖工具可用与CLI回退、平台差异及单元/集成测试边界;但未明确 runTests 的可用环境、更多非适用场景、输出格式或中文支持,且未讨论网络受限环境下的 Electron 下载。
YAML元数据、分层说明、命令示例、别名和常见陷阱均较清晰,并且仓库提供 MIT 许可证、版本和官方维护背景;但技能自身没有维护者、更新路径、变更记录、依赖安装说明或FAQ,故仅中等分数。
技能能够直接帮助用户选择工具或脚本并构造常见测试命令,覆盖文件、名称、glob、覆盖率和超时等核心任务;但示例是概念性而非可验证输出,未说明结果格式、失败后的处理或相对手工操作的收益,静态校准上限为7分。
文档中的命令、参数和编译要求具有一定可审计性,仓库还提供测试代码和CI材料;但所给CI工作流与该单元测试技能不直接对应,未提供针对runTests或scripts/test.sh关键路径的覆盖证据,也没有第三方复现结果,静态校准上限为5分。
- 运行测试可能下载 Electron 并依赖网络;在受限网络或大陆网络环境中,文档未提供镜像、缓存或离线方案。
- runTests 的工具接口未给出可核对的可用性、输出示例或失败诊断;概念性示例不足以确认实际参数行为。
- 执行脚本前需要完成编译或保持 watch 任务运行,但文档未说明如何确认编译产物新鲜或如何处理下载、编译和测试失败。
它能做什么 & 适用场景
该技能面向 microsoft/vscode 仓库中的单元测试运行任务。若可用,它优先调用提供结构化通过与失败信息的 runTests 工具;否则使用仓库根目录下按平台区分的测试脚本。技能支持按测试文件、测试名称和 glob 模式筛选,也支持覆盖率与超时设置。测试依赖已编译的 JavaScript 输出,集成测试不属于 scripts/test.sh 或 scripts/test.bat 的范围。
优先使用 runTests 工具,并向其传入测试文件的绝对路径、测试名称筛选条件或 coverage 模式;工具不可用时,在 macOS/Linux 上运行 ./scripts/test.sh,在 Windows 上运行 .\scripts\test.bat。它可以通过位置参数或 --run 指定一个或多个源文件,通过 --grep、-g 或 -f 按完整测试标题筛选,通过 --runGlob、--glob 或 --runGrep 按编译输出目录中的 .js 文件匹配测试,还可以启用 --coverage 或设置 --timeout。脚本在需要时下载 Electron,并启动 Mocha 测试运行器。
- VS Code 开发者只想验证某个编辑器模型测试文件时,使用文件路径运行目标测试。
- 开发者需要定位某个具体测试标题时,组合 --run 与 --grep 运行更小的测试范围。
- 维护某个功能区域的开发者需要按编译后的测试文件 glob 批量运行测试时,使用 --runGlob。
- 需要检查测试覆盖率的开发者在目标测试命令后追加 --coverage。
- 测试运行时间较长的开发者使用 --timeout 调整 Mocha 的测试超时。
- 处理集成测试的开发者应改用 scripts/test-integration.sh 或 scripts/test-integration.bat,而不是本技能覆盖的单元测试脚本。
优缺点一览
- 同时覆盖 runTests 工具和 macOS/Linux、Windows 两套脚本路径。
- 支持按文件、测试标题和编译输出 glob 缩小运行范围。
- 提供覆盖率和超时参数,并说明了编译输出这一关键前置条件。
- 仓库源代码整体采用 MIT 许可证。
- 没有提供独立安装流程或单独包的证据。
- 依赖已编译的 JavaScript 输出;过期的编译结果可能导致测试失败。
- scripts/test.sh 和 scripts/test.bat 不运行集成测试,集成测试需要其他脚本或技能。
- 源材料没有说明 runTests 工具在哪些客户端中可用,也没有提供测试报告示例。
如何安装
该技能位于 microsoft/vscode 仓库的 .github/skills/unit-tests/SKILL.md。源材料没有提供独立安装命令或单独发布包;使用前需要获取该仓库,并让兼容 Agent Skills 的客户端加载此文件。整个仓库的 README 说明其源代码采用 MIT 许可证,并提到仓库包含 61 个技能,但本资料只描述其中的 unit-tests 技能。
如何使用
在已获取的 VS Code 仓库中提出类似“运行 src/vs/editor/test/common/model.test.ts 中标题包含 should split lines 的单元测试”的请求。若 runTests 可用,优先按文件和测试名称调用它;否则从仓库根目录执行 ./scripts/test.sh --run src/vs/editor/test/common/model.test.ts --grep "should split lines"。Windows 使用 .\scripts\test.bat --run src\vs\editor\test\common\model.test.ts --grep "should split lines"。运行前确保 VS Code - Build watch 任务正在运行,或确认编译已经完成。