# @fluid-internal/mocha-test-setup 中文文档

规范地址：https://npmcn.com/package/%40fluid-internal/mocha-test-setup/

版本：3\.12\.0
npm 元数据更新时间：2026-11-10T22:21:21.315Z
中文译文更新时间：2026-11-15T02:48:45.508Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40fluid-internal/mocha-test-setup
原文对照：https://npmcn.com/package/%40fluid-internal/mocha-test-setup/?lang=original
项目主页：https://fluidframework.com/
源码仓库：https://github.com/microsoft/FluidFramework

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

- 包体积（解压后）：110 kB，46 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：4 个
- 首次发布：2024-03-26T23:18:43.393Z
- 最新版本发布：2026-11-10T22:21:21.144Z
- 近 30 天下载量：2716（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：198（近 12 个月 48 个）

## 中文简介

流体测试用具

## 安装

```sh
npm install @fluid-internal/mocha-test-setup
```

也可以使用：`pnpm add @fluid-internal/mocha-test-setup`、`yarn add @fluid-internal/mocha-test-setup`、`bun add @fluid-internal/mocha-test-setup`

## README

# @fluid- 内部/ mocha- test- setup

**重要:流体框架将本套件作为实施细节.** **不要把它当作公众的依赖.** **我们不保证这一一揽子计划或其API的稳定.**

这个套件有几个主要目的:

-   曝光/ 生成默认值 `.mocharc.cjs` 运行的配置 [摩卡岛](https://mochajs.org/) 测试,哪些其他 软件包可以扩展.
-   添加摩卡语 `beforeAll`, (中文(简体) ), `beforeEach` 财务报告和审定财务报表 `afterEach` [根钩子插件](https://mochajs.org/#root-hook-plugins) 应添加 做测试时有特殊的行为.

## 正在测试

对于使用此配置的软件包, 构建软件包及其测试, 然后运行 `pnpm exec mocha` 从软件包目录.

-   [选择测试文件 `MOCHA_SPEC`](https://npmcn.com/package/%40fluid-internal/mocha-test-setup/#readme-mocha_spec)。 。 。 .
-   [用 Mocha 过滤测试名称 `--fgrep` 或者说 `--grep`](https://mochajs.org/running/cli/#--fgrep-string--f-string)。 。 。 .
-   [启用性能测量 `FLUID_TEST_PERF_MODE`](https://npmcn.com/package/%40fluid-internal/mocha-test-setup/#readme-fluid_test_perf_mode)。 。 。 .

## 环境变量

在运行Mocha前设定环境变量. 用于跨平台脚本 `cross-env`,例如 `pnpm exec cross-env MOCHA_SPEC=lib/test/example.spec.js mocha`。 。 。 .

### 毛里求斯-SPEC

设定已编译的测试文件、 目录或 glob 以加载, 相对于软件包目录. 它取代默认选择 `lib/test` (或 `dist/test` 与 [`FLUID_TEST_MODULE_SYSTEM=CJS`](https://npmcn.com/package/%40fluid-internal/mocha-test-setup/#readme-fluid_test_module_system)) (中文(简体) ). 与 `MOCHA_SPEC`,位置文件参数和 `--spec` 由于 [Mocha的配置合并](https://mochajs.org/next/running/configuring/#merging)。 。 。 . 单独过滤的名称仍然装入所有已配置的测试文件; 使用 `MOCHA_SPEC` 以避免装入无关文件.

### FLUID TEST PERF MODE 软件

设定为 `1` 以衡量基准,而不是将其作为正确性测试. 留待正确性测试; 不使用 `0` 来禁用它.

此选项选择基准记者, 设定每次测试1000秒超时, 并将结果写入 `./benchmarkOutput.json`。 。 。 . 覆盖超时 [`FLUID_TEST_TIMEOUT`](https://npmcn.com/package/%40fluid-internal/mocha-test-setup/#readme-fluid_test_timeout) 和报告路径 `--reporterOptions reportFile=<path>`。 。 。 .

默认 `@Benchmark` 提供时省略过滤器 `--fgrep <text>` 或者说 `--grep <pattern>` (使用这些带单独参数的长选项). 您的过滤器取代而不是与默认相交. 见 [基准过滤](https://npmcn.com/tools/benchmark/README.md#--fgrep-benchmark) 标记和结合制约.

### FLUID TEST TIMEOUT (法语)

超越了莫查每试时数以毫秒计的超时,包括性能-模式默认.

### FLUID TEST FORBID ONLY (法语)

当出现时,让Mocha进入 `forbid-only` 选择拒绝独家测试.

### FLUID TEST MODULE SYSTEM (英语)

当设定为"CJS"时,当前运行被设置为为普通JS覆盖:

-   "CJS"被指为变体并被显示为测试案例名的前缀.
-   JUnit测试结果文件会被前缀为"CJS-".
-   默认 spec 更改自 `lib/test` 改为 `dist/test`。 。 。 .

### FLUID LOGGER PROPS (法语)

将 JSON 对象序列化为 `testEnvProps` 遥测场. 内容 `hostName` 属性还覆盖事件 `hostName`数字 :

```
FLUID_LOGGER_PROPS='{ "hostName": "Benchmark" }'
```

### FLUID TEST LOGGER PKG SPECIFIER (英语)

指定导出模块 `createTestLogger`返回一个 `ITelemetryBufferedLogger`。 。 。 . 设置称为这个工厂,用测试上下文包装日志,并安装全局 `getTestLogger` 函数. 使用此变量而不是 `--require` 来配置自定义日志. 管道利用它向内部工程系统发送遥测.

## 基础 `mocharc.cjs` 配置

为了利用本软件包所暴露的底模配置,首先添加为 `devDependency` 给您的 `package.json` (其余文件已省略):

```json
{
    "devDependencies": {
        "@fluid-internal/mocha-test-setup": "version-that-matches-the-rest-of-the-release-group"
    }
}
```

然后把这个放进 `.mocharc.cjs` 在软件包根部的文件 :

```javascript
"use strict";

const getFluidTestMochaConfig = require("@fluid-internal/mocha-test-setup/mocharc-common");

const config = getFluidTestMochaConfig(__dirname);
module.exports = config;
```

如果您需要额外的配置, 请修改 `config` 指定对象之前 `module.exports`。 。 。 .

如果未明确提供配置文件的路径, Mocha 将默认使用此文件 .

以下节选显示了由 : `getFluidTestMochaConfig()`数字 :

```jsonc
{
  "recursive": true,
  "require": ["@fluid-internal/mocha-test-setup", "source-map-support/register"], // can be extended by providing additionalRequiredModules to getFluidTestMochaConfig()
  "unhandled-rejections": "strict",
  "node-option": ["conditions=allow-ff-test-exports", "expose-gc"],
  "ignore": [ "**/*.tool.{js,cjs,mjs}" ], // Ignore "tools" which are scripts intended to be run, not part of the test suite.
  "spec": "lib/test" // Defaults to "lib/test" where esm tests typically are. Can be overridden via MOCHA_SPEC.
};
```

建议测试文件的源头使用以". spec.ts"结尾的文件名,但这没有执行: 默认情况下没有对测试文件进行基于名称的文件过滤,除了忽略 `"**/*.tool.{js,cjs,mjs}"` 见上文.

注意: 有些软件包会明确地过滤测试文件到 `*.spec.js`:在这样的包中,与其他名字的测试文件会被默默地忽略.

## 特殊行为

### 默认禁止控制台输出

`console.log()`, (中文(简体) ), `console.warn()` 财务报告和审定财务报表 `console.error()` 在测试中被压制,除非 `FLUID_TEST_VERBOSE` 设置, 例如 `FLUID_TEST_VERBOSE=1`。 。 。 .

### 遥测事件

几起遥测事件 `fluid:telemetry:Test_start` 财务报告和审定财务报表 `fluid:telemetry:Test_end` 将为每次测试生成. 这个 `Test_end` 事件包括具有测试状态(通过/失败)的字段,如果超时,则其持续时间. 如果有的话 `FLUID_TEST_VARIANT` 环境变量存在 `testVariant` 字段将具有其价值.

## 贡献准则

你们可以 [贡献](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md) 通过这些方式实现流体框架:

-   回答问题 [GitHub 讨论](https://github.com/microsoft/FluidFramework/discussions)。 。 。 .
-   [提交错误报告](https://github.com/microsoft/FluidFramework/issues) 并且帮助验证修正.
-   审查 [源代码更改](https://github.com/microsoft/FluidFramework/pulls)。 。 。 .
-   [贡献错误修正](https://github.com/microsoft/FluidFramework/blob/main/CONTRIBUTING.md)。 。 。 .

详细指示改为: [repo 文档](https://github.com/microsoft/FluidFramework/blob/main/docs/content/Home.md)。 。 。 .

本项目遵循 [Microsoft 开源行为守则](https://opensource.microsoft.com/codeofconduct/)。 。 。 . 更多信息,改为: [《行为守则》经常被问到的问题](https://opensource.microsoft.com/codeofconduct/faq/)。 。 。 . 问题或评论,联系 [打开码@ microsoft.com](mailto:opencode@microsoft.com)。 。 。 .

这个项目可能包含微软项目的商标或标志,产品,或服务. 这些商标或标志的使用必须遵循微软 [商标和品牌准则](https://www.microsoft.com/trademarks)。 。 。 . 在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助.

## 帮助

读取 [流体框架文件](https://fluidframework.com/docs/) 用于了解流体框架概念和API.

要求提供文件未载列的资料, [创建问题](https://github.com/microsoft/FluidFramework/blob/main/docs/content/Contributing/Submitting-Bugs-and-Feature-Requests.md)。 。 。 .

## 商标

这个项目可能包含微软项目的商标或标志,产品,或服务.

这些商标或标志的使用必须遵循微软的 [商标和品牌准则](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general)。 。 。 .

在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助.

## 常见问题

### @fluid-internal/mocha-test-setup 是什么？

流体测试用具

### 如何安装 @fluid-internal/mocha-test-setup？

在项目目录运行 npm install @fluid-internal/mocha-test-setup，或使用 pnpm add / yarn add / bun add。

### @fluid-internal/mocha-test-setup 支持 TypeScript 吗？

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

### @fluid-internal/mocha-test-setup 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @fluid-internal/mocha-test-setup 可以商用吗？

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

### @fluid-internal/mocha-test-setup 的下载量有多少？

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

### @fluid-internal/mocha-test-setup 还在维护吗？

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

