# @approval-tests/approvals 中文文档

规范地址：https://npmcn.com/package/%40approval-tests/approvals/

版本：7\.5\.14
npm 元数据更新时间：2026-11-02T09:50:44.476Z
中文译文更新时间：2026-11-06T12:23:54.203Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40approval-tests/approvals
原文对照：https://npmcn.com/package/%40approval-tests/approvals/?lang=original
项目主页：http://approvaltests.com/
源码仓库：https://github.com/approvals/Approvals.NodeJS

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

- 包体积（解压后）：200 kB，134 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 0\.8\.0
- 运行依赖：15 个
- peer 依赖：jest ^30\.0\.0，mocha ^12\.0\.2，vitest ^5\.0\.1
- 首次发布：2026-09-25T16:03:34.337Z
- 最新版本发布：2026-11-02T09:50:44.104Z
- 近 30 天下载量：22709（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 9 个）

## 中文简介

核准测试库 - 掌握人类情报

## 安装

```sh
npm install @approval-tests/approvals
```

也可以使用：`pnpm add @approval-tests/approvals`、`yarn add @approval-tests/approvals`、`bun add @approval-tests/approvals`

## README

# 核准(Node.js核准试验)

## 目录

-   [介绍](https://npmcn.com/package/%40approval-tests/approvals/#readme-intro)
-   [标签](https://npmcn.com/package/%40approval-tests/approvals/#readme-badges)
-   [一体化](https://npmcn.com/package/%40approval-tests/approvals/#readme-integrations)
-   [开始](https://npmcn.com/package/%40approval-tests/approvals/#readme-getting-started)
    -   [Jest 字体启动器项目](https://npmcn.com/package/%40approval-tests/approvals/#readme-jest-typescript-starter-project)
    -   [摩诃迦叶](https://npmcn.com/package/%40approval-tests/approvals/#readme-mocha)
-   [文档](https://npmcn.com/package/%40approval-tests/approvals/#readme-documentation)
-   [国 际](https://npmcn.com/package/%40approval-tests/approvals/#readme-cli)
    -   [安装核准CLI](https://npmcn.com/package/%40approval-tests/approvals/#readme-install-approvals-cli)
    -   [CLI 帮助](https://npmcn.com/package/%40approval-tests/approvals/#readme-cli-help)
        -   [使用量](https://npmcn.com/package/%40approval-tests/approvals/#readme-usage)
        -   [实例](https://npmcn.com/package/%40approval-tests/approvals/#readme-examples)
            -   [简单的问候世界](https://npmcn.com/package/%40approval-tests/approvals/#readme-simple-hello-world)
            -   [指定 diff 报员( C. I. 的伟大)](https://npmcn.com/package/%40approval-tests/approvals/#readme-specify-diff-reporter-great-for-ci)
            -   [多名记者](https://npmcn.com/package/%40approval-tests/approvals/#readme-multiple-diff-reporters)
-   [记者](https://npmcn.com/package/%40approval-tests/approvals/#readme-reporters)
    -   [内建的记者](https://npmcn.com/package/%40approval-tests/approvals/#readme-built-in-reporters)
-   [支持的 Diff 工具](https://npmcn.com/package/%40approval-tests/approvals/#readme-supported-diff-tools)
    -   [自定义记者](https://npmcn.com/package/%40approval-tests/approvals/#readme-custom-reporter)
-   [配置](https://npmcn.com/package/%40approval-tests/approvals/#readme-configuration)
-   [API 密码](https://npmcn.com/package/%40approval-tests/approvals/#readme-api)
-   [核准数](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvals)
    -   [报告人](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsreporters)
        -   [记者。 多报员](https://npmcn.com/package/%40approval-tests/approvals/#readme-reportersmultireporter)
    -   [批准~配置(覆盖选项)](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsconfigureoverrideoptions)
    -   [批准 ~ GetConfig( 覆盖选项) ~ `Object`](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsgetconfigoverrideoptions--codeobjectcode)
    -   [批准~mocha(可选BaseDir)](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsmochaoptionalbasedir)
    -   [批准~验证AndScrub( dirName, 测试Name, 数据, 洗涤器, 选项管理)](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsverifyandscrubdirname-testname-data-scrubber-optionsoverride)
    -   [批准~核实( dirName, 测试Name, 数据, 选项覆盖)](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsverifydirname-testname-data-optionsoverride)
    -   [批准~验证ASJSON( dirName, 测试Name, 数据, 选项覆盖)](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsverifyasjsondirname-testname-data-optionsoverride)
    -   [批准~验证ASJSONANDScrub( dir Name, 测试Name, 数据, 洗涤器, 选项管理)](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsverifyasjsonandscrubdirname-testname-data-scrubber-optionsoverride)
    -   [批准~通过控制核实(名称、作者、\[报告事实\]、\[选项重叠\])](https://npmcn.com/package/%40approval-tests/approvals/#readme-approvalsverifywithcontrolnamer-writer-reporterfactory-optionsoverride)
-   [源控件](https://npmcn.com/package/%40approval-tests/approvals/#readme-source-control)
    -   [图形](https://npmcn.com/package/%40approval-tests/approvals/#readme-git)
-   [捐款](https://npmcn.com/package/%40approval-tests/approvals/#readme-contributing)
-   [许可证](https://npmcn.com/package/%40approval-tests/approvals/#readme-license)

## 介绍

核准测试库 - **掌握人类情报**

什么是批准测试? 检查一下简报 [此处概述](http://staxmanade.com/2015/01/approval-tests---overview/) 或了解更多有关批准 [(原始内容存档于2018-10-21) (中文(简体) ). laidtests.com](http://approvaltests.com/)。 。 。 .

## 标签

| 服务 | 状态 |
| --- | --- |
| 软件包 | [@ npm 上的核准-测试/批准](https://www.npmjs.com/package/@approval-tests/approvals) |
| Github (Linux, Mac, Windows) (英语) | [![Build & Test](https://github.com/approvals/Approvals.NodeJS/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/approvals/Approvals.NodeJS/actions/workflows/build-and-test.yml) |

## 一体化

-   [摩诃迦叶](http://mochajs.org/) 测试,看开始
-   [核准 API](https://npmcn.com/package/%40approval-tests/approvals/#readme-api) (单位:千美元)`require('@approval-tests/approvals').verify(...)`(中文(简体) )
-   [命令行工具](https://npmcn.com/package/%40approval-tests/approvals/#readme-cli)

## 开始

莫查,杰斯特,和维特是可选的同伴依赖关系. 安装框架 您的测试与批准同时使用。 核准默默跳过整合 未安装的框架.

### Jest 字体启动器项目

如果您想要跳转到开始一个新项目, 请复制 [捷运启动项目](https://github.com/approvals/ApprovalTests.TypeScript.Jest.StarterProject)

### 摩诃迦叶

下面是一个简单的开始使用Mocha.

1.  创建工程( 文件夹)
    
    ```shell
    mkdir MyProject
    cd MyProject
    ```
    
2.  安装核准
    
    ```shell
    npm install --save-dev @approval-tests/approvals
    ```
    
3.  安装 [摩诃迦叶](http://mochajs.org/) 在进行测试的项目中
    
    ```shell
    npm install --save-dev mocha
    ```
    
4.  创建一个名为 Mocha 的样本测试文件 `SimpleLogger.test.js`。 。 。 .
    
    ```javascript
    require("@approval-tests/approvals").mocha();
    
    describe("When running some tests", function () {
      it("should be able to use Approvals", function () {
        var data = "Hello World!";
        this.verify(data); // or this.verifyAsJSON(data)
      });
    });
    ```
    
5.  以摩诃迦叶试取所取文件.
    
    ```shell
    npx mocha SimpleLogger.test.js
    ```
    
6.  应当向您展示 diff 工具 。 (如果没有,你可能需要安装一个?)
    

## 文档

如果使用 Jest, 请看 [这里更多文档](https://npmcn.com/package/%40approval-tests/approvals/docs/README.md)。 。 。 .

## 国 际

核准。 节点JS有一个版本,可以作为命令行工具运行.

你可以检查出来 `Examples` 以下CLI帮助部分。 或是介绍此工具的博客文章: [核准测试 - 命令行工具( CLI)](http://staxmanade.com/2015/02/approval-tests---command-line-tool--cli-/)。 。 。 .

### 安装核准CLI

```
npm install -g @approval-tests/approvals
```

### CLI 帮助

通过运行 `approvals --help`

#### 使用量

`approvals testName [options]`

| 参数 | 说明 |
| --- | --- |
| \[ --forceapproveall\] (法语) | 跳过批准步骤,并将结果应用到. 批准. txt 文件( 第一次运行良好) |
| \[-记者 difftool\] | 支持多个EX : `--reporter opendiff --reporter gitdiff` |
| \[-出 | 放置批准文件的目录 - 默认为当前目录 |
| \[--动词\] | 额外的调试信息 |
| 东都: | 我们需要扩大所支持的参数,以包括其他核准方案。 (档案: [问题](https://github.com/approvals/Approvals.NodeJS/issues) 如果你需要一个不在这里) |

#### 实例

##### 简单的问候世界

```
echo 'Hello World!' | approvals helloWorldTest
```

##### 指定 diff 报员( C. I. 的伟大)

```
echo 'Hello World!' | approvals helloWorldTest --reporter gitdiff
```

##### 多名记者

```
echo 'Hello World!' | approvals helloWorldTest --reporter gitdiff --reporter p4merge
```

## 记者

### 内建的记者

下列记者可以满足您的需要。 有些支持图像,有些只播放文字,有些在mac和linux上,有些只在窗口上... 请随意配置系统,以自动选择您的最爱 .

## 支持的 Diff 工具

| 核准名称 | 程序 | 窗口 | 麦克/ 林纳 | 页:1 |
| --- | --- | --- | :-: | --- |
| `beyondcompare` | [超越比较](http://www.scootersoftware.com/) | ✓ | ✓ |  |
| `copycommand` | [数字 diff](http://git-scm.com/docs/git-diff) (主讲) | ✓ | ✓ | 对C. I. |
| `diffmerge` | [Ưμ㼯A](https://sourcegear.com/diffmerge/) | ✓ | ✓ |  |
| `donothing` |  | ✓ | ✓ | 这个是按上面说的做 什么都没有. |
| `gitdiff` | [数字 diff](http://git-scm.com/docs/git-diff) (主讲) | ✓ | ✓ | 使用 git cli 到 diff 文件 。 在C. I. 建设中有用 |
| `icdiff` | [图像](https://github.com/jeffkaufman/icdiff) | ✓ | ✓ |  |
| `kdiff3` | [KDiff3 数据](http://kdiff3.sourceforge.net/) | ✓ | ✓ |  |
| `kompare` | [康帕雷](https://www.kde.org/applications/development/kompare/) | ? 吗? | ✓ |  |
| `meld` | [熔化](http://meldmerge.org/) | ✓ | ✓ |  |
| `multi` |  | ✓ | ✓ | 这使得您可以同时运行多个记者. EX: 在验证图像时, 您可能想要使用 `p4merge` 与《京都议定书》 `copycommand` 获取复制的 CLI 命令来批准一个图像以及查看工具中的 diff . |
| `nodediff` | [点头](https://github.com/kpdecker/jsdiff) (主讲) | ✓ | ✓ | 没有 diff 工具弹出彩色的 CLI 输出 |
| `opendiff` | [打开](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/opendiff.1.html) |  | ✓ |  |
| `p4merge` | [p4 缩放](http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools) | ✓ | ✓ |  |
| `tortoisemerge` | [侵权合并](http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html) | ✓ | ✓ |  |
| `vimdiff` |  | ✓ | ✓ |  |
| `visualstudio` | [视觉工作室 Diff 工具](http://msdn.microsoft.com/en-us/library/bb385990.aspx) | ✓ |  |  |
| `vscode` | [视觉工作室代码 Diff 工具](https://code.visualstudio.com/) | ✓ | ✓ |  |
| `vscodium` | [VSCodium diff 工具](https://vscodium.com/) | ✓ | ✓ |  |

### 自定义记者

与内置记者一起,你可以创建自己的自定义记者 只是通过这个样本 并填写界面 与自定义记者 希望的行为.

```
    /* OR a custom reporter object. Below is an example custom reporter */
    {
      /**
       * Determine if the file that needs to be reported on can be handled by this reporter object.
       * @param {string} receivedFilePath - The path to a received file.
       */
      canReportOn(receivedFilePath) {
        return true;
      }

      /**
       * Apply the logic necessary to report a difference.
       *  EX:
       *     - Open a diff program using the approved & received files
       *     - Generate and email a report showing the differences.
       * @param {string} approvedFilePath - The path to an approved file.
       * @param {string} receivedFilePath - The path to a received file.
       */
      // Actually execute the diff against the two files
      report(approvedFilePath, receivedFilePath) {
        // Do some reporting.
        // Typically by launching a diff tool
      }
    }
```

## 配置

或更多,控制批准的行为 通过各种调整来配置.

批准使用以下配置来推动其行为. 如何将这种配置传达给批准,可以有几种方式发生.

以下定义的默认配置可以通过使用以下策略被推翻.

> 注:配置选择的优先级/顺序来自以下列表,其中第一个项目有定义的默认值,如果指定了配置值,则下一个步骤都有可能推翻上一个.

2.  从默认开始(如下文JS对象所示),定义如下: [lib/配置图](https://npmcn.com/package/%40approval-tests/approvals/lib/config.ts)。 。 。 .
3.  然后,我们将在您家目录的 yaml 或 json 文件中配置默认值( 仅指定属性) 并覆盖默认值 `~/.approvalsConfig`。 。 。 .
4.  你可以打电话了 [`approvals.configure({...})`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals.configure)。 。 。 .
5.  然后通过测试级别上的任何特定配置作为校验函数中最后一个参数 `.verify(..., {...overridden config...});`。见 [API 密码](https://npmcn.com/package/%40approval-tests/approvals/#readme-api) 用于特定参数.

这里有一个使用单一记者的例子 `p4merge`并且压倒一切。 这只会取代这个特定的测试 .

```javascript
it("should use a specific reporter", function () {
  this.verify("some data", {
    reporters: ["p4merge"],
  });
});
```

如果你需要执行多个记者 一个失败.

说你做了一个"很棒的DiffReporter",希望它能与"通知BossViaEmail Reporter"结合运行,你可以像下面那样使用"多报".

```javascript
var approvals = require("@approval-tests/approvals");
var MultiReporter = approvals.reporters.MultiReporter;

it("should use a multiple reporters", function () {
  this.verify("some data", {
    reporters: [new MultiReporter(["p4merge", "copycommand"])],
  });
});
```

```ts
export const defaultConfig: Config = {
  reporters: [
    "BeyondCompare",
    "diffmerge",
    "p4merge",
    "tortoisemerge",
    "nodediff",
    "opendiff",
    "gitdiff",
  ],
  normalizeLineEndingsTo: false,
  failOnLineEndingDifferences: false,
  appendEOL: true,
  EOL: os.EOL,
  errorOnStaleApprovedFiles: true,
  shouldIgnoreStaleApprovedFile: () => false,
  stripBOM: false,
  forceApproveAll: false,
  blockUntilReporterExits: false,
  maxLaunches: 10,
};
```

[片段来源](https://npmcn.com/lib/config.ts#L25-L47 "Snippet source file") | [锁定](https://npmcn.com/package/%40approval-tests/approvals/#readme-snippet-default_config "Start of snippet")

## API 密码

## 核准数

核准模块.

-   [核准数](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals)
    -   _静态_
        -   [. 记者](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals.reporters)
            -   [多报员](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals.reporters.MultiReporter)
    -   _内_
        -   [~ 配置( 覆盖选项)](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals..configure)
        -   [~GetConfig(覆盖选项)](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals..getConfig) ⇒ `Object`
        -   [~mocha( 可选的BaseDir)](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals..mocha)
        -   [~验证AndScrub( dirName, 测试Name, 数据, 洗涤器, 选项管理)](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals..verifyAndScrub)
        -   [~验证( dirName, testName, data, options Override)](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals..verify)
        -   [~验证ASJSON( dirName, 测试Name, 数据, 选项覆盖)](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals..verifyAsJSON)
        -   [~验证ASJSONANDScrub( dirName, testName, 数据, 洗涤器, 选项管理)](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals..verifyAsJSONAndScrub)
        -   [~通过控制验证(名称、作者、 \[报告事实\]、 \[选项覆盖\])](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals..verifyWithControl)

### 报告人

`reporters` 允许进入 `MultiReporter`

**仁爱**: 静态属性 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals) **示例**

```js
const MultiReporter = approvals.reporters.MultiReporter
```

#### 记者。 多报员

这样可以访问多报构建器. 你可以利用这个同时运行多个记者.

**仁爱**: 静态属性 [`reporters`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals.reporters) **示例**

```js
approvals.verify(__dirname, "multi-reporter-example", "some data", {
  reporters: [
    new MultiReporter('p4merge', 'copycommand')
  ]
});
```

### 批准~配置(覆盖选项)

允许您为默认配置提供覆盖 .

**仁爱**: 内部方法 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals)

| 参数 | 类型 |
| --- | --- |
| 覆盖选项 | `*` |

**示例**

```js
const approvals = require('@approval-tests/approvals');
approvals.configure({
  reporters: ['p4merge']
});
```

### 批准 ~ GetConfig( 覆盖选项) ~ `Object`

允许使用选项中传出的任何选项创建批准配置对象来覆盖默认值.

**仁爱**: 内部方法 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals) **回返**数字 : `Object` - 任何选项被推翻的批准对象.

| 参数 | 类型 |
| --- | --- |
| 覆盖选项 | `Object` |

### 批准~mocha(可选BaseDir)

配置给摩卡测试的核准.

**仁爱**: 内部方法 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals)

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 选项BaseDir | `*` | 保存批准文件到的可选文件夹 . |

### 批准~验证AndScrub( dirName, 测试Name, 数据, 洗涤器, 选项管理)

使用此功能在运行校验前将洗涤器功能应用到任何数据中 .

**仁爱**: 内部方法 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals)

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 目录Name | `string` | 一般来说 `__dirname` 但可以是存储批准和收到的文件的基准目录(任何地方). |
| 测试Name | `string` | 文件名安全字符串可以调用与此测试相关的文件 . |
| 数据 | `string` | `Buffer` | 要保存为文本文件的字符串或代表图像的缓冲器 |
| 洗涤器 | `*` | 一个需要字符串并返回字符串的函数。 如果在写入任何文件之前要擦除“ 数据” , 批准会称为此 . |
| 选项覆盖 | `*` | 一个可以包含批准配置对象所定义的配置覆盖对象. |

**示例**

```js
// basic approval test with a custom scrubber
const approvals = require('@approval-tests/approvals');
const scrubber = approvals.scrubbers.multiScrubber([
   function (data) {
     return (data || '').replace("some text", "some other text");
   },
   approvals.scrubbers.guidScrubber // to remove guids from the received data
});
approvals.verifyAndScrub(__dirname, 'sample-approval-test', "some text to verify", scrubber);
```

### 批准~核实( dirName, 测试Name, 数据, 选项覆盖)

**仁爱**: 内部方法 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals)

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 目录Name | `string` | 一般来说 `__dirname` 但可以是存储批准和收到的文件的基准目录(任何地方). |
| 测试Name | `string` | 文件名保存字符串以调用与此测试相关的文件 . |
| 数据 | `string` | `Buffer` | 要保存为文本文件的字符串或代表图像的缓冲器 |
| 选项覆盖 | `*` | 一个可以包含批准配置对象所定义的配置覆盖对象. |

**示例**

```js
// basic approval test
const approvals = require('@approval-tests/approvals');
approvals.verify(__dirname, 'sample-approval-test', "some text to verify");
```

**示例**

```js
// basic approval test providing an option to override configuration
const approvals = require('@approval-tests/approvals');
approvals.verify(__dirname, 'sample-approval-test', "some text to verify", { normalizeLineEndingsTo: true });
```

### 批准~验证ASJSON( dirName, 测试Name, 数据, 选项覆盖)

你可以通过"数据" 任何javascript对象 成为JSON.string 和运行校验对对.

**仁爱**: 内部方法 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals)

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 目录Name | `string` | 一般来说 `__dirname` 但可以是存储批准和收到的文件的基准目录(任何地方). |
| 测试Name | `string` | 文件名安全字符串可以调用与此测试相关的文件 . |
| 数据 | `string` | `Buffer` | 这可以是任何将成为JSON的JavaScript对象/阵列. 运行验证前已字符串 |
| 选项覆盖 | `*` | 一个可以包含批准配置对象所定义的配置覆盖对象. |

**示例**

```js
const approvals = require('@approval-tests/approvals');
approvals.verifyAndScrub(__dirname, 'sample-approval-test', { a: "some text in an object" });
```

### 批准~验证ASJSONANDScrub( dir Name, 测试Name, 数据, 洗涤器, 选项管理)

你可以通过"数据" 任何javascript对象成为JSON.stringifed. 在我们运行验证之前,洗涤器会运行 与完整的字符串,然后运行验证与它.

**仁爱**: 内部方法 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals)

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 目录Name | `string` | 一般来说 `__dirname` 但可以是存储批准和收到的文件的基准目录(任何地方). |
| 测试Name | `string` | 文件名安全字符串可以调用与此测试相关的文件 . |
| 数据 | `string` | `Buffer` | 这可以是任何将成为JSON的JavaScript对象/阵列. 运行验证前已字符串 |
| 洗涤器 | `*` | 一个需要字符串并返回字符串的函数。 如果在写入任何文件之前要擦除“ 数据” , 批准会称为此 . |
| 选项覆盖 | `*` | 一个可以包含批准配置对象所定义的配置覆盖对象. |

**示例**

```js
// basic approval test with a custom scrubber
const approvals = require('@approval-tests/approvals');
const scrubber = approvals.scrubbers.multiScrubber([
   function (data) {
     return (data || '').replace("some text", "some other text");
   },
   approvals.scrubbers.guidScrubber // to remove guids from the received data
});
approvals.verifyAndScrub(__dirname, 'sample-approval-test', { a: "some text in an object" }, scrubber);
```

### 批准~通过控制核实(名称、作者、\[报告事实\]、\[选项重叠\])

这使得您在核实前完全控制了文件的命名和写作.

例如,我们用来在读取器中生成文件,请检查 [测试/模拟/读取](https://npmcn.com/package/%40approval-tests/approvals/test/mocha/readmeTests.mts) 在这个项目.

**仁爱**: 内部方法 [`approvals`](https://npmcn.com/package/%40approval-tests/approvals/#readme-module_approvals)

| 参数 | 类型 |
| --- | --- |
| 名称 | `Object` |
| 编剧 | `Object` |
| \[记者事实\] | `function` |
| \[选项覆盖\] | `Object` |

## 源控件

批准工具生成2个文件, 您可能想要忽略一个文件并检查另一个文件 .

-   `*.received.*` 文件应该是 **关闭**。 。 。 .
-   `*.approved.*` 你可能会想把批准的文件 保存在源控制.

### 图形

如果你在用的话 [图形](http://git-scm.com/) 将此添加到您的 `.gitignore`数字 :

```text
*.received.*
```

取决于操作系统和操作系统 `eol` 设置在 git 中,失败测试时的 diff 输出可能会报告由于行尾的差异而更改的每行 。 为了避免出现这种情况,考虑通过将此行添加到您的 `.gitattributes` 文件 :

```text
*.approved.* eol=lf
```

## 捐款

看看这个 [准则](https://npmcn.com/package/%40approval-tests/approvals/CONTRIBUTING.md)来啊!

## 许可证

版权 (c) 2012-2017年 Llewellyn Falco, Jason Jarrett 凭Apache牌照获得执照.

## 常见问题

### @approval-tests/approvals 是什么？

核准测试库 - 掌握人类情报

### 如何安装 @approval-tests/approvals？

在项目目录运行 npm install @approval-tests/approvals，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 approvals，可以用 npx approvals 直接运行。

### @approval-tests/approvals 支持 TypeScript 吗？

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

### @approval-tests/approvals 支持 ESM 还是 CommonJS？

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

### @approval-tests/approvals 需要什么版本的 Node\.js？

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

### @approval-tests/approvals 可以商用吗？

@approval-tests/approvals 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @approval-tests/approvals 的下载量有多少？

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

### @approval-tests/approvals 还在维护吗？

最新版本 7\.5\.14 发布于 2026/11/02（5 天前）；至今共发布 9 个版本，其中过去 12 个月发布了 9 个；首次发布于 2026/09/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

