# @cypress/snapshot 中文文档

规范地址：https://npmcn.com/package/%40cypress/snapshot/

版本：2\.1\.7
npm 元数据更新时间：2025-10-27T19:13:54.698Z
中文译文更新时间：2026-11-11T07:20:50.145Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cypress/snapshot
原文对照：https://npmcn.com/package/%40cypress/snapshot/?lang=original
项目主页：https://github.com/cypress-io/snapshot#readme
源码仓库：https://github.com/cypress-io/snapshot

弃用说明：Package no longer supported\. Contact Support at https://www\.npmjs\.com/support for more info\.

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：101 kB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=6
- 运行依赖：8 个
- 首次发布：2017-12-12T03:07:19.354Z
- 最新版本发布：2020-01-18T07:28:01.514Z
- 近 30 天下载量：137659（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 0 个）

## 中文简介

向 Cypress 测试跑车添加值/ 对象/ DOM 元素快照测试支持

## 安装

```sh
npm install @cypress/snapshot
```

也可以使用：`pnpm add @cypress/snapshot`、`yarn add @cypress/snapshot`、`bun add @cypress/snapshot`

## README

# @ cypress/ snapshot (英语)

> 向 Cypress 测试跑车添加值/ 对象/ DOM 元素快照测试支持

[![NPM](https://nodei.co/npm/@cypress/snapshot.svg?downloads=true)](https://npmjs.org/package/@cypress/snapshot)

 [![Build status](https://travis-ci.org/cypress-io/snapshot.svg?branch=master)](https://travis-ci.org/cypress-io/snapshot)[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg) ](https://github.com/semantic-release/semantic-release)[![renovate-app badge](https://img.shields.io/badge/renovate-app-blue.svg)](https://renovateapp.com/)

## 说明

请查看 Cypress 其他几个快照插件 : [cypress-plugin-snapshots (英语)](https://github.com/meinaart/cypress-plugin-snapshots), (中文(简体) ), [cypress-image-snapshot (简体中文)](https://github.com/palmerhq/cypress-image-snapshot)。 。 。 .

## 安装

要求数 [节点](https://nodejs.org/en/) 6或以上版本.

```sh
npm install --save-dev @cypress/snapshot
```

## 使用

安装后,在您的 `cypress/support/commands.js` 文件

```js
require('@cypress/snapshot').register()
```

此注册新命令以创建新快照或比较旧快照的值

```js
describe('my tests', () => {
  it('works', () => {
    cy.log('first snapshot')
    cy.wrap({ foo: 42 }).snapshot()
    cy.log('second snapshot')
    cy.wrap({ bar: 101 }).snapshot()
  })
})

describe('focused input field', () => {
  it('is empty and then typed into', () => {
    cy.visit('http://todomvc.com/examples/react/')
    cy
      .focused()
      .snapshot('initial')
      .type('eat healthy breakfast')
      .snapshot('after typing')
  })
})
```

默认情况下, 快照对象可以在文件中找到 `snapshots.js`。在上述情况下,它会看起来像这样

```js
module.exports = {
  "focused input field": {
    "is empty and then typed into": {
      "initial": {
        "tagName": "input",
        "attributes": {
          "class": "new-todo",
          "placeholder": "What needs to be done?",
          "value": ""
        }
      },
      "after typing": {
        "tagName": "input",
        "attributes": {
          "class": "new-todo",
          "placeholder": "What needs to be done?",
          "value": "eat healthy breakfast"
        }
      }
    }
  },
  "my tests": {
    "works": {
      "1": {
        "foo": 42
      },
      "2": {
        "bar": 101
      }
    }
  }
}
```

如果您更改站点值, 保存的快照将不再匹配, 丢出错误

![Snapshot mismatch](https://npmcn.com/package/%40cypress/snapshot/img/snapshot-mismatch.png)

点击 `SNAPSHOT` 在命令日志中步骤可看到DevTools中打印的预期值和当前值.

### 选项

你可以通过几个选项来控制快照比较和行为.

```js
cy.get(...).snapshot({
  name: 'human snapshot name', // to use in the snapshot file
  json: false                  // convert DOM elements into JSON
                               // when storing in the snapshot file
})
```

### 配置

此模块提供了一些配置选项 :

#### 使用RelativeSnapshots (缩写)

设定为真, 以存储您每次测试运行时的快照 而不是基础工作目录.

**说明:** 要求 `readFileMaybe` 要配置的插件 [https://on.cypress.io/task#Read-a-file- That-might-no-except 互联网档案馆的存檔,存档日期2013-12-11](https://on.cypress.io/task#Read-a-file-that-might-not-exist)

#### 快取文件Name

设定为指定您快照的字符串

#### 使用量

设定配置选项为 Cypress 配置的一部分 . 见 [https://docs.cypress.io/ guides/references/configulation.html 页面存档备份,存于互联网档案馆](https://docs.cypress.io/guides/references/configuration.html)

## 调试

用环境变量调试此模块 `DEBUG=@cypress/snapshot`

### 小印数

作者:格莱布·巴赫穆托夫 <gleb@cypress.io> © Cypress.io 2017

授权:麻省理工学院 - 做任何与代码有关的事情,但如果无效就不要责备你.

支持: 如果您发现此模块有任何问题, 电子邮件 / 微博 / [未决问题](https://github.com/cypress-io/snapshot/issues) 在基图布

## MIT 许可证

版权 (c) 2017 Cypress.io <gleb@cypress.io>

特此免费准许任何人 获取该软件和相关文件的副本 文件(“软件”),在软件中处理,不包含 限制,包括不限制使用权, 复制、修改、合并、出版、发行、分版和/或销售 软件的复制本,并允许向 为此提供了软件,但须符合下列条件: 条件:

上述版权通知和本许可通知应为: 列入软件的所有副本或大部分.

软件是提供的"是", 没有任何种类的恐惧, 或监禁,包括但不限制于 特别目的和目的的证明 无所不入。 绝对不能让警察或警察 B. 任何索赔、救济或其他负债的持有者, 条约、条约或其他条约行动 来源、来源或与溶剂或使用有关的 其他交易 在软件.

## 常见问题

### @cypress/snapshot 是什么？

向 Cypress 测试跑车添加值/ 对象/ DOM 元素快照测试支持注意：该包已被作者标记为弃用——Package no longer supported\. Contact Support at https://www\.npmjs\.com/support for more info\.

### 如何安装 @cypress/snapshot？

在项目目录运行 npm install @cypress/snapshot，或使用 pnpm add / yarn add / bun add。

### @cypress/snapshot 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/cypress\_\_snapshot 是否存在。

### @cypress/snapshot 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @cypress/snapshot 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=6。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @cypress/snapshot 可以商用吗？

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

### @cypress/snapshot 的下载量有多少？

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

### @cypress/snapshot 还在维护吗？

最新版本 2\.1\.7 发布于 2020/01/18（6 年前）；至今共发布 13 个版本，其中过去 12 个月发布了 0 个；首次发布于 2017/12/12。作者已将其标记为弃用，新项目建议寻找替代方案。

