Cypress 视觉回归执行器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/cypress-visual-regression-runner
技能介绍
它解决的问题
UI 的意外变化很少在单元测试里暴露。样式被覆盖、组件间距偏移、图标丢失这类问题,只有看到渲染结果才能发现。传统做法是让测试跑完后人工翻截图,或者在 PR 上肉眼比对,成本高、漏检多,跨浏览器场景下更明显。
它的工作方式
这个技能在 Cypress 已有的截图能力上做了一层自动化的回归比对:
- 使用
cy.screenshot()在用例执行过程中捕获当前页面的渲染结果 - 把截图与仓库里保存的基准图像做逐像素比对,差异算法基于
pixelmatch - 集成 Percy SDK,把视觉快照扩展到多个浏览器环境,让差异不局限在本地跑的那几个内核上
整个流程是"跑用例、截图、比对、出报告",不需要再维护一套独立的视觉测试框架。
适用边界与注意点
- 它假设基准图像已经存在且可信。首次接入时需要先人工确认一批截图,之后任何基准更新都应走评审,否则误报会被当成正常差异吞掉。
pixelmatch对抗锯齿和字体渲染差异敏感,CI 机器的字体或操作系统不同可能带来大量假阳性,建议在固定环境里生成基准。- 它捕捉的是快照时刻的渲染结果,轮播、动画中间态、时间戳这类动态内容会让比对不稳定,需要先用例把页面稳定下来再截图。
- 比对粒度是像素级的,无法判断"按钮偏移 2px 是否合理",语义层面的设计变更仍需设计师确认。
使用场景
- 组件库改完按钮样式后,需要确认现有用例截图与基准图没有出现意外的像素差异
- CI 里跑 Cypress 用例时,想把页面截图自动与仓库里的基准图像做逐像素比对并报告差异
- 需要在 Chrome、Firefox 等多个浏览器内核上采集页面快照,做跨浏览器的视觉一致性检查
- UI 重构后想批量核对组件的渲染结果是否与上一版基准一致,避免样式回归被漏测
适合人员
- 前端工程师:需要在 Cypress 用例中捕获截图并与基准图像做自动比对,尽早发现样式回归
- 组件库维护者:发布新版本前要在多个浏览器上核对组件渲染结果,避免视觉差异进入主干
- 测试工程师:负责把视觉比对接入 CI 流程,让每次 PR 都产出可评审的截图差异报告
- 关注 UI 一致性的团队:希望用自动化快照替代人工翻截图,减少跨浏览器场景下的漏检