@fluid- 内部/ mocha- test- setup
重要:流体框架将本套件作为实施细节. 不要把它当作公众的依赖. 我们不保证这一一揽子计划或其API的稳定.
这个套件有几个主要目的:
- 曝光/ 生成默认值
.mocharc.cjs运行的配置 摩卡岛 测试,哪些其他 软件包可以扩展. - 添加摩卡语
beforeAll, (中文(简体) ),beforeEach财务报告和审定财务报表afterEach根钩子插件 应添加 做测试时有特殊的行为.
正在测试
对于使用此配置的软件包, 构建软件包及其测试, 然后运行 pnpm exec mocha 从软件包目录.
- 选择测试文件
MOCHA_SPEC。 。 。 . - 用 Mocha 过滤测试名称
--fgrep或者说--grep。 。 。 . - 启用性能测量
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) (中文(简体) ).
与 MOCHA_SPEC,位置文件参数和 --spec 由于 Mocha的配置合并。 。 。 .
单独过滤的名称仍然装入所有已配置的测试文件; 使用 MOCHA_SPEC 以避免装入无关文件.
FLUID TEST PERF MODE 软件
设定为 1 以衡量基准,而不是将其作为正确性测试.
留待正确性测试; 不使用 0 来禁用它.
此选项选择基准记者, 设定每次测试1000秒超时, 并将结果写入 ./benchmarkOutput.json。 。 。 .
覆盖超时 FLUID_TEST_TIMEOUT 和报告路径 --reporterOptions reportFile=<path>。 。 。 .
默认 @Benchmark 提供时省略过滤器 --fgrep <text> 或者说 --grep <pattern> (使用这些带单独参数的长选项).
您的过滤器取代而不是与默认相交.
见 基准过滤 标记和结合制约.
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
(其余文件已省略):
{
"devDependencies": {
"@fluid-internal/mocha-test-setup": "version-that-matches-the-rest-of-the-release-group"
}
}
然后把这个放进 .mocharc.cjs 在软件包根部的文件 :
"use strict";
const getFluidTestMochaConfig = require("@fluid-internal/mocha-test-setup/mocharc-common");
const config = getFluidTestMochaConfig(__dirname);
module.exports = config;
如果您需要额外的配置, 请修改 config 指定对象之前 module.exports。 。 。 .
如果未明确提供配置文件的路径, Mocha 将默认使用此文件 .
以下节选显示了由 : getFluidTestMochaConfig()数字 :
{
"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 字段将具有其价值.
贡献准则
你们可以 贡献 通过这些方式实现流体框架:
详细指示改为: repo 文档。 。 。 .
本项目遵循 Microsoft 开源行为守则。 。 。 . 更多信息,改为: 《行为守则》经常被问到的问题。 。 。 . 问题或评论,联系 打开码@ microsoft.com。 。 。 .
这个项目可能包含微软项目的商标或标志,产品,或服务. 这些商标或标志的使用必须遵循微软 商标和品牌准则。 。 。 . 在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助.
帮助
读取 流体框架文件 用于了解流体框架概念和API.
要求提供文件未载列的资料, 创建问题。 。 。 .
商标
这个项目可能包含微软项目的商标或标志,产品,或服务.
这些商标或标志的使用必须遵循微软的 商标和品牌准则。 。 。 .
在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助.