用于 Storybook 的 Percy 与 Chromatic
将 Percy 和 Chromatic 集成到持续集成流程中,自动检查 Storybook 组件的视觉效果。
用于 Storybook 的 Percy 与 Chromatic 是 CoddyKit 上的免费 CSS Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 CSS Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 CSS Academy 课程共包含 4 节课。
Percy 概览
Percy 是一个基于云的 VRT 平台,可与持续集成流水线集成。它会捕获网页和 Storybook 故事的屏幕截图,将基线存储在云端,并通过网页界面生成可访问的视觉差异审查结果。它支持 Playwright、Cypress、Selenium 和 Storybook。
Chromatic 概览
Chromatic 是一个专为 Storybook 打造的 VRT 平台。它会在云端浏览器中捕获所有故事,将其与基线进行比较,并生成差异审查界面。Chromatic 还会将 Storybook 发布为托管的组件文档站点。
Storybook 集成
Percy 和 Chromatic 都会自动发现并为每个 Storybook 故事创建快照。无需编写额外的测试代码——为组件编写故事,运行 CLI,每个视觉状态都会自动接受测试。这使现有 Storybook 项目能够快速采用这些工具。
Percy 设置
安装 @percy/cli 和 @percy/storybook,将 PERCY_TOKEN 环境变量添加到持续集成环境,并将 percy storybook ./storybook-static 添加到持续集成流水线中。Percy 会自动为所有故事创建快照,并将 VRT 构建结果发布到 Percy 控制面板。
Chromatic 设置
安装 chromatic,将 CHROMATIC_PROJECT_TOKEN 添加到持续集成环境,然后运行 chromatic --project-token=...。首次运行会建立基线。后续运行会与基线进行比较,并将审查链接发布到 GitHub PR 检查中。
审查流程
两种工具都会添加一项 PR 检查,显示“检测到 X 项更改。”点击后会打开审查界面,其中包含并排或叠加的差异。评审人员可以批准有意进行的更改(建立新的基线),也可以要求修复意外的回归问题。
使用 Story 参数实现 VRT 覆盖
使用 Storybook 参数(控件)创建多个故事变体:默认、加载中、错误、禁用、LongText、SmallViewport。每个变体都会成为独立的 VRT 快照,无需编写单独的测试文件即可实现全面的状态覆盖。
视口和主题测试
Chromatic 和 Percy 支持为每个快照配置多个视口宽度。可以在故事中配置视口,也可以通过 .storybook/preview.js 全局配置。为每个视口和每个主题(浅色/深色)运行 VRT,可以同时捕获响应式和主题回归问题。
基线管理
在重大版本升级或有意重新设计时接受所有更改。两种工具都支持批量接受。重大设计系统更新后,可以一次性接受所有差异,新的屏幕截图就会成为未来增量更改的基线。
使用 VRT 进行交互测试
将 Storybook 的 play() 函数(交互测试)与 VRT 结合使用:play() 会模拟用户交互(点击按钮、打开模态框),然后由 VRT 快照捕获交互后的状态。这样可以测试复杂交互组件的视觉输出。
成本和快照限制
Percy 和 Chromatic 按快照收费。包含数百个故事、多个视口和多个主题的大型 Storybook 测试套件,会为每个 PR 生成数千个快照。请监控使用量,高效使用故事装饰器,并考虑对纯逻辑类故事跳过 VRT。
知识检查
与通用 VRT 工具相比,Chromatic 为什么特别适合 Storybook 项目?
摘要
Percy 和 Chromatic 会通过在云端浏览器中发现并为所有故事创建快照、生成 PR 差异审查结果以及管理基线,自动化 Storybook 的 VRT。结合用于状态覆盖的故事参数和用于交互测试的 play(),它们可以为组件库提供全面的视觉质量保障。
常见问题解答
「用于 Storybook 的 Percy 与 Chromatic」课时是免费的吗?
是的 — 「用于 Storybook 的 Percy 与 Chromatic」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 CSS Academy 课程的其余内容,请升级到 CoddyKit PRO。 CSS Academy 课程共包含 4 节课。
「用于 Storybook 的 Percy 与 Chromatic」这节课中我会学到什么?
将 Percy 和 Chromatic 集成到持续集成流程中,自动检查 Storybook 组件的视觉效果。 你通过在浏览器中直接运行的动手代码来练习 CSS Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 CSS Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 CSS Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「用于 Storybook 的 Percy 与 Chromatic」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 CSS Academy 课中编写并运行代码吗?
能。每节 CSS Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 视觉回归测试概念
- 用于 Storybook 的 Percy 与 Chromatic
- 使用 Jest 进行 CSS 单元测试
- 可访问性测试:color-contrast 与焦点