VS Code 冒烟测试助手
运行、筛选并调试 VS Code 端到端冒烟测试。
技能明确说明循环仅用于临时排查、应在合并前移除,并披露日志、截图及可能包含模拟 LLM 请求/响应正文;但未说明最小权限、用户确认、敏感数据处理、凭据边界或失败后的恢复流程,因此扣分。
npm 脚本、参数转发、失败时非零退出、循环 fail-fast 及日志位置说明较一致;但依赖安装、平台前置条件、PowerShell/Azure 变体和异常输入处理不完整,且本次未执行验证,受静态上限约束。
目标场景、触发描述、Electron/Web/Remote 模式、grep 筛选、打包构建和不同 CI 环境均有说明,并区分了单元/集成/Smoke 测试;但非适用边界、Node/系统依赖、中文支持和中国大陆网络可达性未说明,且日志下载依赖 gh/az 及海外 CI 服务。
文档采用脚本、选项、示例、临时循环、日志排查和测试类型区分的渐进结构,仓库提供 MIT 许可、Microsoft 归属和版本信息;但技能自身没有版本、变更记录、维护责任、安装说明、FAQ 或完整故障排查路径,因此扣分。
核心任务可直接转化为 npm 命令、筛选参数、trace 采集、失败日志下载和临时复现循环,预期输出与退出码也有说明;但缺少技能自身提交的可核验结果,且平台细节和前置条件不足,静态评估不能超过 7 分。
package.json 直接支持两个 smoke-test 脚本,文档给出具体工作流路径、命令和日志结构;但提供的 CI 证据主要是无关的 chat-perf 工作流,未见覆盖该技能关键路径的 smoke CI 或独立复现结果,因此只能给有限分。
- 运行 Smoke 测试会启动完整 VS Code/Electron 或浏览器流程,可能产生较高 CPU、内存和时间成本;先确认构建、显示环境及 Playwright/Electron 依赖已就绪。
- 日志可能包含模拟 LLM 请求/响应正文及扩展日志,下载或共享 artifacts 前应检查敏感信息。
- 临时循环会显著增加 CI 消耗,并会修改工作流;必须在合并前移除。
- gh/az 下载路径依赖相应 CLI、认证和 CI 服务可达性;中国大陆网络环境可能无法稳定访问这些服务。
它能做什么 & 适用场景
该技能面向 microsoft/vscode 仓库中的冒烟测试工作,覆盖 Electron、浏览器和远程测试场景。它说明如何运行已编译或先编译后运行的测试,以及如何用 Mocha grep 筛选套件。它还提供在 CI 中临时重复运行可疑套件、失败即停并保留追踪信息的方法。技能同时说明如何从 GitHub Actions 和 Azure DevOps 下载并检查冒烟测试日志。
运行 npm run smoketest,先编译 test/smoke 再执行测试;或运行 npm run smoketest-no-compile 执行已编译测试,并把 -- 后的参数传给 test/smoke/test/index.js。它支持按标题筛选套件、针对打包构建运行、启用 Playwright 追踪,以及选择 Electron、浏览器、无头浏览器或远程模式。针对 CI 间歇性失败时,它指导在 GitHub PR 工作流或 Azure DevOps 测试步骤中临时循环运行套件,并从日志工件中检查运行器日志、扩展宿主日志和失败截图。
- VS Code 开发者需要运行完整 Electron 冒烟测试,以验证端到端用户流程。
- 测试工程师只想运行名称包含特定文本的套件,并在失败时收集 Playwright 追踪和截图。
- CI 维护者需要在 Linux、macOS 或 Windows 上针对指定套件重复测试,以复现间歇性失败。
- 问题排查人员需要从 GitHub Actions 或 Azure DevOps 下载 `.build/logs` 工件,检查 Mocha 输出和扩展宿主日志。
- 构建验证人员需要对已打包的 VS Code 构建运行已经编译好的冒烟测试。
优缺点一览
- 覆盖 Electron、浏览器和远程冒烟测试模式,并支持无头浏览器模式。
- 提供按测试或套件标题筛选、Playwright 追踪和失败截图等实用选项。
- 给出了 GitHub Actions 与 Azure DevOps 两套 CI 日志下载和定位方法。
- 临时重复循环采用失败即停,有助于保留首次失败的追踪和截图并减少无效运行。
- 它依赖 VS Code 仓库已有的冒烟测试、编译流程和 CI 配置,不是独立的测试框架。
- 临时循环只应用于排查问题,合并前必须移除,否则每个平台的运行时间可能增加约一小时。
- 独立安装步骤、客户端配置和完整环境准备要求在给定资料中没有说明。
- 日志工件名称和工作流路径会因平台、CI 系统及测试套件而不同,需要按文档选择。
如何安装
该技能没有提供独立安装命令或包管理步骤。它位于 https://github.com/microsoft/vscode 的 .github/skills/smoke-tests/SKILL.md;使用时需要让兼容 Agent Skills 的客户端读取该文件。仓库级技能集合的独立安装流程未在给定资料中说明。
如何使用
在该仓库中按需求触发此技能,例如:运行 VS Code 冒烟测试并只执行名称包含 Agents Window 的套件,同时启用追踪。对应命令为 npm run smoketest -- -g "Agents Window" --tracing。运行已编译测试可使用 npm run smoketest-no-compile;针对打包构建可使用 npm run smoketest-no-compile -- --tracing --build "/path/to/VSCode-darwin-arm64/Code - OSS.app"。-g 也可写作 -f,测试失败时运行器返回非零退出码。
对比同类
与单元测试和集成测试不同,该技能专门处理 test/smoke/ 中驱动完整 VS Code 实例的端到端用户流程;资料将单元测试指向 scripts/test.sh / runTests,将集成测试指向 scripts/test-integration.sh。