VS Code 冒烟测试故障诊断
定位并验证 Azure DevOps 中间歇性 VS Code Electron 冒烟测试失败。
文档明确限定 Azure DevOps 项目、流水线定义、平台和日志范围,并要求核对源版本;但使用 Azure CLI、登录、下载日志、取消旧运行和排队新运行会产生外部影响,未要求用户确认、未说明凭据/日志敏感数据处理,也未提供撤销或恢复方案,因此扣分。
步骤、命令、时间关联规则和异常诊断链条较完整,且说明认证失败、依赖缺失和工件发布时间;但未提供可执行的错误分支、权限不足处理、CLI 版本兼容性或本地重现证据,静态评估不超过10分,因此扣分。
目标用户和适用场景清楚,覆盖失败迭代、日志关联、根因追踪和定向验证,并列出不应混淆的日志/会话边界;但未明确非适用场景、输入前提和触发语义,中文支持缺失,核心功能依赖可能受中国大陆网络可达性影响的 Azure DevOps,因此扣分。
文档按前置条件、诊断、定位、验证和报告逐步展开,命令、平台映射、限制和 MIT 许可可由仓库材料支持;但技能自身没有版本、变更记录、维护责任、更新路径、FAQ 或安装依赖说明,部分治理信息只能由仓库间接推断,因此扣分。
该技能为定位 flaky smoke test 提供了具体的流水线查询、日志下载、时间关联、根因分析和验证运行流程,预期报告格式也明确;但结果依赖 Azure 权限、真实运行数据和人工判断,静态材料未验证输出可直接交付,且排队运行具有成本和外部影响,因此扣分。
固定流水线定义、任务名称、工件命名、时间范围和命令使关键结论具备审计线索,并要求以源版本和日志证据支撑根因;但没有针对该技能的提交测试、第三方执行记录或交叉验证材料,静态评估不超过5分,因此扣分。
- 执行 az login、下载日志、取消运行或排队验证前,应明确获得用户确认并确认账户权限与目标分支/提交。
- 日志和崩溃工件可能包含代码、提示词、路径或其他敏感信息;文档未规定脱敏、保存期限或共享边界。
- 核心流程依赖 Azure DevOps 和 Azure CLI;中国大陆网络不可达或认证受限时,技能可能无法完成主要任务。
- 未执行本次静态审查,不能据此确认命令、工件名称或流水线行为在该修订中实际可运行。
它能做什么 & 适用场景
该技能专门诊断 VS Code Azure DevOps Flaky Smoke Tests 流水线中的间歇性 Electron 冒烟测试失败。它检查定义 ID 为 700 的流水线、逐次迭代任务、任务日志和平台级日志工件,并将失败时间段与运行器日志关联起来。它还指导用户从构建源版本追踪引入问题的提交、排查会话与响应路由竞争,并队列化聚焦验证运行。它适合能够访问 Monaco Azure DevOps 项目和相关代码仓库的工程团队。
使用 Azure CLI 查看构建状态、源版本和模板参数;下载并筛选构建时间线中的 Smoke test iteration 任务;读取权威的迭代任务日志;列出并下载 macOS arm64、Windows x64 或 Linux x64 平台日志及崩溃工件;依据时间戳、测试标题、场景 ID、请求内容和模型轮次分析手势、调度、请求、工具循环、渲染与会话路由;使用 git show、git log、git blame 和 git show 检查引入提交;使用 az pipelines run 队列化定义 700 的聚焦验证;使用 npm run compile 和 build/hygiene.ts 验证本地 TypeScript 修改。
- VS Code 维护者发现定义 700 的某个平台只在部分迭代中失败,需要逐个检查失败迭代而不是依赖整体构建结果。
- Electron 冒烟测试的任务摘要显示失败,但团队需要从平台级 smoke-test-runner.log 中确认请求是否发出、工具循环是否完成以及响应是否渲染。
- 测试结果可能受到历史会话、陈旧 DOM 或重复预热请求影响,工程师需要核对活动会话身份和实际状态转换。
- 开发者已经定位到可疑测试文件,需要用构建的 sourceVersion、git blame 和提交差异判断哪个提交真正引入了竞争条件。
- 修复已推送到 microsoft/vscode,维护者希望只启用相关平台并运行六次迭代进行快速验证。
优缺点一览
- 明确限定于 VS Code Flaky Smoke Tests 流水线定义 700,包含组织、项目、YAML 路径和平台工件命名规则。
- 强调逐个检查迭代任务,并区分任务级权威日志与包含多个迭代的作业级运行器日志。
- 覆盖从失败证据、会话与渲染诊断到引入提交追踪和聚焦验证的完整调查链路。
- 提供可复制的 Azure CLI、Git、npm 和 Node.js 命令。
- 仅针对 VS Code Electron 冒烟测试和指定的 Azure DevOps Monaco 流水线,不是通用测试故障诊断技能。
- 需要 Azure DevOps 访问权限、网络访问和本地命令行环境;认证失败时还需要 az login。
- 平台日志工件要等平台作业发布输出后才能下载,调查早期可能只能依赖任务日志。
- 源材料没有说明独立安装流程,也没有提供自动化脚本或完整的本地测试环境配置。
如何安装
将该技能目录放置在目标 Agent Skills 目录的 .github/skills/flaky-smoke-tests/ 路径下,并保留其中的 SKILL.md。源材料没有提供独立的安装命令或完整的 Agent 客户端安装流程;技能位于 https://github.com/microsoft/vscode 的指定路径。
如何使用
先准备 Azure CLI 和 Azure DevOps 扩展,然后执行:
az extension show --name azure-devops
az devops configure --defaults organization=https://dev.azure.com/monacotools project=Monaco
如未认证,执行 az login。向支持该技能的客户端提出类似请求:“诊断 Azure DevOps Monaco 项目定义 700 的构建 <BUILD_ID> 中所有失败的 Electron 冒烟测试迭代,下载对应任务日志和平台工件,定位根因,并在修复提交已推送后安排聚焦验证。”技能会要求核对准确的 sourceVersion、迭代任务 ID、任务日志、平台工件、失败时间范围和验证运行结果。
对比同类
该技能明确要求使用 Azure CLI 而不是浏览器来查询构建、时间线和工件;它不是一个独立的日志平台或通用测试框架。