# @datashard/snapshot 中文文档

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

版本：3\.0\.0-beta\.1
npm 元数据更新时间：2024-05-02T19:21:14.339Z
中文译文更新时间：2026-11-11T20:08:00.825Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：16.2 kB，11 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=6
- 运行依赖：4 个
- 首次发布：2023-02-20T20:01:03.114Z
- 最新版本发布：2024-05-02T19:21:14.184Z
- 近 30 天下载量：3731（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 0 个）

## 中文简介

添加 JSON 快照测试支持到 Cypress

## 安装

```sh
npm install @datashard/snapshot
```

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

## README

# @ datashard/ snapshot

> 向 Cypress 添加 JSON 快照比较

## QQ 打破更改QQ

-   与V3 `readFileMaybe` 任务已删除, 我们现在依赖 `cy.fixture` 内部.
-   上一个 `SNAPSHOT_UPDATE` 环境/配置变量已更改为 `updateSnapshots`

> \[危险\] 这意味着之前的测试可能会被打破, _请在更新到此插件的最新版本之前确保测试通过_ 。 。 。 .

此当前发布将作为 `3.0.0-beta`如果我或我的雇主找到虫子 我会打开问题/PR来修复它们 如果有人找到虫子/Edgeases等 请打开一个问题.

## 安装

要求节点16或以上

```sh
npm i --save-dev @datashard/snapshot
```

## 导入

安装后, 您需要将以下导入添加到您的命令/ 支持文件

> 默认情况下, 这将是 `cypress/support/e2e.js`

```js
require('@datashard/snapshot').regsiter()
```

这将注册一个新的命令 `.snapshot()`,用于创建和比较JSON快照.

## 配置

你可以通过 `updateSnapshots` 财务报告和审定财务报表 `useFolders` 作为选项 `cypress.config.js` 文件

![Example Settings for the Module](https://npmcn.com/package/%40datashard/snapshot/.github/assets/config.png) 或者,您也可以添加 `snapshotUpdate` 作为更新您快照的环境变量.

只是通过 `--env updateSnapshots=true` 当运行 Cypress 时.

## 使用量

如果添加得当, 此插件的使用相当简单, 只要添加 `.snapshot()` 以返回有效的 JSON.(即:. `cy.wrap`(中文(简体) )

正确添加时, 可以链条 `.snapshot()` 关闭 `cy` 函数类似 `cy.wrap`确保他们返回有效的JSON.

### 示例

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

此插件将保存您的快照为

```ts
// useFolders: false
cypress/fixtures/my-test__works__foo.json
cypress/fixtures/my-test__works__bar.json

// useFolders: true
cypress/fixtures/my-test/works/foo.json
cypress/fixtures/my-test/works/bar.json

// {fixtureFolder}/<Context>-<Describe>-<It>-<Name?>.json
// {fixtureFolder}/<Context>/<Describe>/<It>/<Name?>.json

```

通常会使用上述编码块的注释中提到的公约来保存快照,该注释由命名为Cypress测试步骤提供.

如果您要在同一块中拍摄多张快照, 需要将名称传递到快照函数, 但不选中 .

如果您在同一块有两个或两个以上快照, 下一个 _**将**_ 在更新时总是覆盖上一个, 导致块中的第一快照失败 . 在运行您的测试时, 如果一个值改变, 它当然将不再匹配快照并丢出错误 .

这看起来是这样的:

![](https://npmcn.com/package/%40datashard/snapshot/.github/assets/Error.png)

当测试成功时, 它将会在日志中登录一个成功记录, 并让您知道文件保存到哪里, 相对于 Fixture 快照文件夹

![](https://npmcn.com/package/%40datashard/snapshot/.github/assets/Correct.png)

## 常见问题

### @datashard/snapshot 是什么？

添加 JSON 快照测试支持到 Cypress

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

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

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

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

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

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

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

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

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

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

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

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

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

最新版本 3\.0\.0-beta\.1 发布于 2024/05/03（2 年前）；至今共发布 7 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/02/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

