用途:通过自动化驱动真实 VS Code 实例执行场景,录制可复现的证据,用于复现已报告的缺陷、证明修复有效,或把录像附到测试计划项。需要每次构建都跑的确定性回归覆盖时,应写冒烟测试,本技能面向一次性、源自 issue 的验证。
准备:执行 npm install、npm run electron 下载 Electron 运行时、npm run transpile-client(或在另一终端 npm run watch)、npm --prefix test/mcp run compile。自动化 MCP 服务器位于 test/mcp(out/stdio.js),需加入 MCP 配置以启用 vscode_automation_* 工具;在 args 追加 --web --headless 可录制 Web 构建而非 Electron。
干净录制:在 MCP 服务器环境中设置 VSCODE_EVIDENCE_CLEAN_CAPTURE=1 可避免步骤横幅改动被测 DOM,步骤边界仍会带时间戳和截图记录到 manifest.json。
运行场景:选择一次性工作区,勿指向真实工作内容,因为运行会输入、点击并可能修改文件;录像不得含凭据、令牌或私人对话。先调用 vscode_automation_evidence_start,传入场景 id、标题、来源 issue URL 和工作区路径,它以隔离配置启动 VS Code 并开始录像与追踪。每个步骤:调用 vscode_automation_evidence_step 并设 status: started 和一行意图;选择器前先查看无障碍快照;优先使用特性专用自动化工具,其次语义选择器,最后坐标;按用户方式操作;用独立可观察信号验证,动作完成不等于结果;再次调用该步骤并设 passed、failed 或 skipped 及简要详情。最后调用 vscode_automation_evidence_finish 记录总体结果,停止 VS Code 并生成视频、追踪、截图、manifest.json 和 report.html。除非场景另说明,遇到首个失败的必要步骤即停止;缺少硬件、账号或服务的步骤应标为 skipped 而非 passed。
可信证据:应对 DOM 状态、无障碍、焦点或文本做断言,截图只作佐证;若是竞态,应显式计时(如强制延迟或重复循环)以展示发生窗口;尽量在修复前先录制失败行为。证据写入 .build/vscode-playwright-mcp/evidence/<run-id>/,包含 report.html、manifest.json、videos/、*.png、logs/。报告需总结结果、列出失败或跳过步骤、链接 report.html,并说明操作系统、VS Code 提交和来源 issue,可将视频拖入评论框附到 issue 或 PR。
在 PR 上的自动验证:microsoft/vscode-engineering 在 CI 中运行同一套工具,给 PR 打上 ~requires-ui-validation 标签会对确切合并候选运行已检入的场景适配器并发布分步结果和分段视频;当场景尚未被覆盖时可用本技能,或先在本地迭代再提出。