@bahmutov/cypress-toy-visual-testing

中文文档
1.8.6发布于 2025/10/15MITTypeScript近 30 天下载 1986

Cypress 用户简单的本地视觉测试

中文使用文档
文档目录6 节
  1. 学习
  2. 安装
  3. 使用
  4. 抓取选项
  5. CI 选项
  6. 发展

@bahmutov/cypress-toy-visual-测试 main

Cypress 用户简单的本地视觉测试

学习

安装

将此插件添加为 dev 依赖

npm i -D @bahmutov/cypress-toy-visual-testing

从 Cypress 配置文件中的“ hook” 设置 :

// cypress.config.js

const { defineConfig } = require('cypress')
// https://github.com/bahmutov/cypress-toy-visual-testing
const {
  setupVisualTesting,
} = require('@bahmutov/cypress-toy-visual-testing/dist/plugin/setup')

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      setupVisualTesting(on, config)
      return config
    },
  },
})

在您的支持文件中添加自定义命令 :

// cypress/support/e2e.js

// https://github.com/bahmutov/cypress-toy-visual-testing
import '@bahmutov/cypress-toy-visual-testing/dist/support/commands'

使用

获取完整页面截图

cy.imageDiff('added-todos')

抓取选项

  • fullPage (默认)取出整个页面的截图并将其缝入一个图像
  • viewport 取当前可见部分的截图
  • clipToViewport 将整个测试跑道的截图取出,将图像剪接到取景口.
  • diffPercentage 允许您忽略图像差异, 最高为像素的 N% 。 如果diff低于这个百分比,金像就不会被覆盖
  • failOnLayoutDiff 如果尺寸不同, 图像比较失败, 默认为真实
  • dimensionTolerance 如果 failOnLayoutDiff: true

例如,让我们忽略所有图像差异,最多半个像素

cy.imageDiff('app', { diffPercentage: 0.5 })

比较图像,允许每个维度在金像的5%以内

cy.imageDiff('app', {
  failOnLayoutDiff: true,
  dimensionTolerance: 0.05,
})

CI 选项

以下 Cypress env 变量可以改变图像 diff 是如何被批准或拒绝的 :

  • updateGoldImages 以新截图覆盖金色图像, 即使有差异 。 用于拉请求中的分支来覆盖可以添加到源分支的图像 。 然后用户可以看到已改变的金像和主分支金像的区别.

  • failOnMissingGoldImage默认值 false 可用于自动失败 cy.imageDiff 如果截图没有金色的图像来比较。 例如,在 main 树枝,我们可以要求所有金色图像都存在.

- name: Run Cypress tests 🧪
  # https://github.com/cypress-io/github-action
  uses: cypress-io/github-action@v6
  with:
    start: npm start
    # if there is no gold image to compare a screenshot to
    # it is a problem, and we should fail the tests
    env: failOnMissingGoldImage=true

发展

使用 npm run watch 将TS汇编成联合来文

使用下列图标来指代图像:

  • 金色图像
  • qq 当前截图
  • 图像匹配
  • 图像不匹配

版本与发布记录

@bahmutov/cypress-toy-visual-testing 共发布 33 个版本,首次发布于 2024/05/01;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.8.6latest2025/10/151.1 年前
1.8.52025/10/151.1 年前
1.8.42025/10/151.1 年前
1.8.32025/05/091.5 年前
1.8.22025/05/091.5 年前
1.8.12025/03/101.7 年前

关于 @bahmutov/cypress-toy-visual-testing 的常见问题

@bahmutov/cypress-toy-visual-testing 是什么?

Cypress 用户简单的本地视觉测试

如何安装 @bahmutov/cypress-toy-visual-testing?

在项目目录运行 npm install @bahmutov/cypress-toy-visual-testing,或使用 pnpm add / yarn add / bun add。

@bahmutov/cypress-toy-visual-testing 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bahmutov/cypress-toy-visual-testing 可以商用吗?

@bahmutov/cypress-toy-visual-testing 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bahmutov/cypress-toy-visual-testing 的下载量有多少?

根据 npm 官方下载统计,@bahmutov/cypress-toy-visual-testing 在 2026/10/08 – 2026/11/06 这 30 天内被下载 1,986 次,日均约 66 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bahmutov/cypress-toy-visual-testing 还在维护吗?

最新版本 1.8.6 发布于 2025/10/15(1.1 年前);至今共发布 33 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/05/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。