开发与工程 ✓ Microsoft · 官方 component-fixturesscreenshot-testingvisual-regression-testingshadow-domdependency-injectionvite

组件夹具与截图测试

帮助你为 VS Code 组件创建稳定、可主题化的截图测试夹具。

FollowSkills 评估 · FSRS-2.0
谨慎使用
53/ 100 五分制 2.7 / 5
1 2 3 4 5 6
1信任安全17 / 25 · 3.4/5

技能将操作限定为组件 fixture 创建、更新和截图测试,并要求通过指定工具访问 fixture;未见恶意行为或破坏性默认操作,因此保留较高分。但未说明工具权限、截图数据流、敏感内容处理、用户确认、外部影响或回滚机制,且来源归属仅由仓库上下文支持,扣8分。

2可靠稳定8 / 20 · 2.0/5

文档提供了服务器启动、fixture 列举、截图和多种渲染模式,关键 happy path 基本可复现,因此给8分。静态材料没有 fixture 专属测试、工具不可用之外的异常处理、输入校验或诊断失败信息;“inform the user to them on”存在明显措辞错误,扣2分。

3适用触发9 / 15 · 3.0/5

前置描述明确了适用场景、目录、文件命名和触发条件,并覆盖主题、服务、异步和 CSS 场景,给9分。非适用范围、输入输出契约、语义误触发边界、中文支持和中国大陆网络可达性未说明;核心截图流程依赖可能不可用的 MCP 工具,扣6分。

4规范维护8 / 15 · 2.7/5

文档结构清晰,包含渐进式说明、代码示例、服务表格、常见陷阱和设计建议;仓库上下文提供 MIT 许可及 Microsoft 归属,因此给8分。技能自身没有版本、变更记录、维护责任、更新路径、安装依赖说明或 FAQ,且依赖工具的获取方式不完整,扣7分。

5有效结果7 / 15 · 2.3/5

文档能直接指导用户组织 fixture、注入服务、处理主题和避免截图抖动,核心任务价值明确,按静态上限给7分。没有提交的代表性 fixture 输出、截图结果或独立执行证据,且最终仍需用户自行启动环境和调用工具,无法证明完整、直接可用的结果,扣8分。

6证据核验4 / 10 · 2.0/5

技能内容具体、路径和 API 名称可审计,仓库 package.json 也能佐证 component explorer 依赖,给4分。未提供该技能专属测试套件、CI 覆盖、截图基线或第三方执行结果,结论主要依赖文档陈述,扣6分。

证据充分度: 评估于 2026年7月20日 审查版本 5b3e1be7be9e
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 使用前确认 mcp_component-exp_* 工具确实已安装、可访问且其截图数据不会泄露敏感界面内容。
  • 文档未定义失败恢复、回滚和依赖版本锁定流程;工具或组件 explorer 不可用时,用户可能需要自行排查环境。
  • 未说明中国大陆网络环境和中文工作流支持,远程依赖可达性需单独验证。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

这个技能用于在 VS Code 仓库中创建或更新组件夹具,也用于设计便于夹具化的 UI 组件。它规定了夹具文件的位置、命名结构、主题变体、服务注册、CSS 作用域和异步渲染方式。夹具通过组件浏览器渲染隔离的 UI 组件,并可使用 MCP 工具列出夹具和生成截图。它适合需要验证组件视觉状态的 VS Code 开发者,但依赖组件浏览器服务器和对应的 MCP 工具。

指导代理在 src/vs/workbench/test/browser/componentFixtures/ 创建以 .fixture.ts 结尾的文件,并使用 defineThemedFixtureGroupdefineComponentFixturecreateEditorServices 定义夹具。它说明如何注册额外服务或模拟服务、创建文本模型、应用 Dark/Light 主题、将组件放入 shadow DOM,以及通过正确的祖先 DOM 结构匹配生产 CSS 选择器。它还指导代理避免异步重新挂载导致的闪烁,暴露组件的 domNode,并为组件增加可关闭自动聚焦或直接进入完成状态的选项。运行时,先启动 Component Explorer Server 任务,再调用 mcp_component-exp_list_fixtures 列出夹具和 URL,或调用 mcp_component-exp_screenshot 截取截图。

  1. VS Code 前端开发者需要为新 UI 组件添加 Dark 和 Light 截图测试时,使用该技能生成标准夹具结构。
  2. 维护现有组件的开发者发现生产 CSS 依赖深层祖先选择器时,使用该技能重建必要的 DOM 层级或重构为组件自包含样式。
  3. 需要隔离外部依赖的测试作者在组件依赖额外服务时,使用该技能通过依赖注入注册实现或 mock 实例。
  4. 进行视觉回归检查的开发者在组件浏览器服务器运行后,使用该技能列出夹具并程序化生成截图。
  5. 设计新组件的工程师希望组件易于测试时,参考该技能避免构造阶段读取布局、避免强制自动聚焦,并公开可挂载的 DOM 节点。

这个 Skill 有哪些优点和局限?

优点
  • 覆盖夹具文件结构、主题、服务注册、CSS 作用域、异步渲染和常见截图稳定性问题。
  • 提供 `fixtureUtils.ts` 中各辅助函数的明确职责和可直接参考的 TypeScript 模式。
  • 强调测试真实组件代码和生命周期,而不是在夹具中复制或重新组合组件。
  • 支持通过 `defineThemedFixtureGroup` 自动生成 Dark 和 Light 变体。
局限
  • 范围限定在 VS Code 仓库及其组件浏览器约定,不能据此推断适用于其他 UI 框架或仓库。
  • 运行截图流程需要 Component Explorer Server 任务和 `mcp_component-exp_*` 工具;来源未提供这些工具的安装或配置步骤。
  • 来源没有提供独立测试套件、平台覆盖范围或截图基准结果。
  • 该技能主要提供开发指导和调用流程,不是一个独立的组件夹具生成或截图执行程序。

如何安装这个 Skill?

该技能属于 microsoft/vscode 仓库中的技能集合,路径为 .github/skills/component-fixtures/SKILL.md。将仓库中的该文件保留在此路径即可;来源没有提供独立安装命令,也没有说明将它安装到其他客户端的具体步骤。使用完整集合时,应按仓库提供的方式获取 https://github.com/microsoft/vscode,但来源未进一步规定获取命令。

如何使用这个 Skill?

在 VS Code 仓库中提出类似请求:为 MyWidget 创建一个包含 Default、Dark 和 Light 变体的组件夹具,并使用 mock 服务和稳定的截图布局。 然后在 src/vs/workbench/test/browser/componentFixtures/ 创建或更新 .fixture.ts 文件,默认导出 defineThemedFixtureGroup(...)。启动 Component Explorer Server 任务;使用 mcp_component-exp_list_fixtures 查看夹具及其 URL,再使用 mcp_component-exp_screenshot 截图。如果这些 MCP 工具不可见,需要先让使用环境启用它们。具体客户端配置方式在来源中未说明。

常见问题

这个技能是否需要付费?
来源将其归属于 `microsoft/vscode` 仓库,该仓库源代码采用 MIT 许可证。来源没有说明组件浏览器 MCP 工具或其他运行环境是否存在额外费用。
我可以把夹具文件放到任意目录吗?
技能规定夹具位于 `src/vs/workbench/test/browser/componentFixtures/`,并由 Vite 开发服务器通过 `src/**/*.fixture.ts` 自动发现。应遵循这些路径和文件命名约定。
为什么截图会闪烁或布局不稳定?
技能指出,组件在异步等待后被重新挂载到其他 DOM 父节点会触发布局重新计算、焦点丢失和中间状态截图。应从一开始就建立最终 DOM 结构,并尽量减少组件出现后的 DOM 操作。
这个技能能否替代组件浏览器或截图工具?
不能。它说明如何编写和运行夹具,并要求使用 Component Explorer Server 以及 `mcp_component-exp_list_fixtures`、`mcp_component-exp_screenshot` 工具;来源没有表明它本身包含这些运行组件。

同仓库的其他 Skills

均来自 microsoft/vscode

开发与工程 ✓ Microsoft · 官方

CI 组件截图基线调查

从 CI 检查结果和截图制品中调查组件截图差异。

开发与工程 ✓ Microsoft · 官方

VS Code Agents 窗口会话架构

帮助代理安全实现和修复 VS Code Agents 窗口功能。

开发与工程 ✓ Microsoft · 官方

VS Code Insiders 自动化技能

通过 Playwright 自动化 VS Code Insiders 与 Copilot Chat。

开发与工程 ✓ Microsoft · 官方

VS Code 项目初始化助手

在 VS Code 中按项目类型搭建完整工程骨架。

开发与工程 ✓ Microsoft · 官方

VS Code 聊天定制编辑器开发技能

帮助开发者安全修改并测试 VS Code 的聊天定制管理界面。

设计与前端 ✓ Microsoft · 官方

VS Code 设计哲学

用价值、原则和设计动作,把“看起来不对”转化为可执行的界面改进。

开发与工程 ✓ Microsoft · 官方

Agent 主机端到端测试助手

用严格的回放夹具维护 VS Code Agent 主机端到端测试。

开发与工程 ✓ Microsoft · 官方

VS Code 单元测试助手

在 VS Code 源码仓库中按文件、测试名称或匹配模式运行单元测试。

开发与工程 ✓ Microsoft · 官方

VS Code Chat 性能实验室

基准测试聊天渲染性能,并检测会话中的内存泄漏。

开发与工程 ✓ Microsoft · 官方

VS Code 冒烟测试助手

运行、筛选并调试 VS Code 端到端冒烟测试。

开发与工程 ✓ Microsoft · 官方

VS Code 错误遥测修复指南

从错误遥测追溯无效数据源头,修复未处理错误而不是掩盖崩溃。

开发与工程 ✓ Microsoft · 官方

VS Code 集成测试运行助手

帮助你在 VS Code 源码仓库中准确运行和筛选集成测试。

开发与工程 ✓ Microsoft · 官方

内存泄漏审计

系统检查事件监听器、生命周期回调和可释放资源中的泄漏风险。

开发与工程 ✓ Microsoft · 官方

VS Code 性能调查工作流

自动化复现 VS Code 场景并采集性能与内存证据。

开发与工程 ✓ Microsoft · 官方

VS Code 冒烟测试故障诊断

定位并验证 Azure DevOps 中间歇性 VS Code Electron 冒烟测试失败。

开发与工程 ✓ Microsoft · 官方

Anthropic SDK 升级助手

系统化升级 Anthropic SDK,并检查 API 变更、编译问题与 Claude 相关测试。

开发与工程 ✓ Microsoft · 官方

搜索视图结果读取器

读取 VS Code 搜索视图中现有的搜索结果。

开发与工程 ✓ Microsoft · 官方

CI 检查修复助手

根据失败检查的注释和输出定位原因并修复当前会话中的 CI 问题。

开发与工程 ✓ Microsoft · 官方

GitHub Copilot SDK 升级助手

在 VS Code Copilot Chat 项目中升级并验证 @github/copilot。

开发与工程 ✓ Microsoft · 官方

工具重命名兼容性检查

防止内置工具重命名破坏现有提示词与工具配置。

相关 Skills