跳到主要内容
版本:26.倍

配置Jest.

Jest的配置可以在<代码>package.json.。您的项目文件,或通过<代码>jest.config.js, 要么<代码>jest.config.ts文件或通过<代码>——配置<路径/ / file.js | ts | cj | mj | json >选择。如果你想用你的<代码>package.json.。来存储Jest的配置<代码>“笑话”key应该在顶层使用,这样Jest就会知道如何找到你的设置:

{
“名称” “我的项目”
“笑话” {
“详细” 真正的
}
}

otravésde javascript:

/ / jest.config.js
// sync对象
模块 出口 = {
详细的 真正的
} ;
//或异步函数
模块 出口 = 异步 => {
返回 {
详细的 真正的
} ;
} ;

O a través de TypeScript (si<代码>TS节点EstáInstalado):

/ / jest.config.ts
进口 类型 { 配置 } “@jest /类型” ;
// sync对象
常量 配置 配置 initialOptions. = {
详细的 真正的
} ;
出口 默认的 配置 ;
//或异步函数
出口 默认的 异步 承诺 < 配置 initialOptions. > => {
返回 {
详细的 真正的
} ;
} ;

POR偏好,十en Cuenta que laConfiguraciónuceantantedebe ser Serializable en Json。

当使用<代码>-康法选项,JSON文件必须不包含“jest”键:

{
“保释” 1
“详细” 真正的
}

opciones.<一种类="hash-link" href="#opciones" title="#">#

我们可以在你的档案中记录你的笑话<代码>package.json.。.我们可以在filosofía de Jest中找到错误,但有必要在configuración中控制más。

违约<一种类="hash-link" href="#defaults" title="#">#

如果需要的话,你可以获取Jest的默认选项来扩展它们:

/ / jest.config.js
常量 { 违约 } = 要求 “jest-config” ;
模块 出口 = {
// ......
modulefileextensions. [ ... 违约 modulefileextensions. “t” “tsx” ]
// ......
} ;

参考<一种类="hash-link" href="#reference" title="#">#

automock(布尔)<一种类="hash-link" href="#automock-boolean" title="#">#

默认值:<代码>假

此选项告诉Jest,您的测试中的所有导入模块都应自动模拟。测试中使用的所有模块都将具有替换实现,保持API表面。

例子:

// utils.js.
出口 默认的 {
授权 => {
返回 '令牌' ;
}
isAuthorized 秘密 => 秘密 === “向导”
} ;
/ / __tests__ / automocking.test.js
进口 跑龙套 “. . /跑龙套” ;
测试 'if utils自动嘲笑' => {
// Nums`的公共方法现在模拟了函数
预计 跑龙套 授权 模拟 Tobeththy. ;
预计 跑龙套 isAuthorized 模拟 Tobeththy. ;
//您可以提供自己的实现
//或传递预期的返回值
跑龙套 授权 mockReturnValue “mocked_token” ;
跑龙套 isAuthorized mockReturnValue 真正的 ;
预计 跑龙套 授权 托比 “mocked_token” ;
预计 跑龙套 isAuthorized 'not_wizard' Tobeththy. ;
} ;

注意:当你有一个手动模拟时,Node模块会被自动模拟(例如:<代码>__mocks __ / lodash.js).更多信息<一种href="/es-ES/docs/manual-mocks">这里

注意:核心模块,如<代码>fs美国人不会因为违约而受到嘲笑。他们可以被明确地嘲笑,比如<代码>笑话。模拟(fs)

保释(号码|布尔)<一种类="hash-link" href="#bail-number--boolean" title="#">#

默认值:<代码>0.。

默认情况下,Jest运行所有测试,并在完成时将所有错误生成到控制台中。可以在这里使用保释配置选项让Jest在之后停止运行测试<代码>N失败。设置保释到<代码>真正的和保释是一样的吗<代码>1

cachedirectory.(字符串)<一种类="hash-link" href="#cachedirectory-string" title="#">#

默认值:<代码>“/ tmp /

Jest应存储其缓存依赖信息的目录。

Jest尝试(预先)扫描一次依赖关系树并缓存它,以减轻运行测试时需要进行的文件系统清理。这个配置选项允许您自定义Jest在磁盘上缓存数据的位置。

clearMocks(布尔)<一种类="hash-link" href="#clearmocks-boolean" title="#">#

默认值:<代码>假

在每次测试之前自动清除模拟调用和实例。相当于调用<代码>笑话。clearAllMocks ()在每个测试之前。这不会删除可能提供的任何模拟实现。

CollectCoverage.(布尔)<一种类="hash-link" href="#collectcoverage-boolean" title="#">#

默认值:<代码>假

指示是否应在执行测试时收集覆盖信息。因为这种改造了具有覆盖集合语句的所有执行文件,所以它可能会显着减慢您的测试。

CollectCoveragefrom[大批]<一种类="hash-link" href="#collectcoveragefrom-array" title="#">#

默认值:<代码>未定义的

一系列<一种href="https://github.com/jonschlinkert/micromatch" target="_blank" rel="noopener noreferrer">一团模式指示应该为其收集覆盖率信息的一组文件。如果一个文件与指定的glob模式匹配,即使这个文件不存在测试,并且测试套件中也不需要它,也会为它收集覆盖率信息。

例子:

{
“collectcoveragefrom” [
“* * / * {js, jsx}”。
“!** / node_modules / **”
“!**/小贩/**”
]
}

这将收集项目中所有文件的覆盖率信息<代码>rootDir,除了那些匹配的<代码>* * / node_modules / * *或<代码>* * /供应商/ * *

注意:此选项需要<代码>CollectCoverage.设置为true或使用Jest调用<代码>-抄本

亚搏取款帮助:如果你看到的是诸如…
===============================覆盖摘要===============================.
声明:未知% (0/0)
分支机构:未知%(0/0)
函数:未知% (0/0)
线条:未知%(0/0)
================================================================================
Jest:没有找到global的覆盖数据。

很可能您的glob模式不匹配任何文件。指的是<一种href="https://github.com/jonschlinkert/micromatch" target="_blank" rel="noopener noreferrer">micromatch文档以确保您的globs是兼容的。

coverageDirectory(字符串)<一种类="hash-link" href="#coveragedirectory-string" title="#">#

默认值:<代码>未定义的

Jest应输出其覆盖文件的目录。

coveragePathIgnorePatterns[数组]<一种类="hash-link" href="#coveragepathignorepatterns-arraystring" title="#">#

默认值:<代码>[" / node_modules "]

在执行测试之前与所有文件路径匹配的regexp模式字符串数组。如果文件路径与任何模式匹配,则会跳过覆盖信息。

这些模式字符串与完整路径匹配。使用<代码>包含项目根目录路径的字符串令牌,以防止它意外地忽略不同环境中可能有不同根目录的所有文件。例子:<代码>[" < rootDir > /构建/”,“< rootDir > / node_modules /”)

CoverageProvider.(字符串)<一种类="hash-link" href="#coverageprovider-string" title="#">#

指示应该使用哪个提供商来检测覆盖范围的代码。允许的值是<代码>禁止禁忌(默认)或<代码>v8

注意,使用<代码>v8被认为是实验性的。这使用了V8的内置代码覆盖,而不是基于Babel。它没有经过很好的测试,而且在Node的最近几个版本中也得到了改进。使用最新版本的node(撰写本文时为v14)将产生更好的结果。

coverageReporters[一种rray]<一种类="hash-link" href="#coveragereporters-arraystring--string-options" title="#">#

默认值:<代码>[“json”, "lcov", "text", "clover"]

在编写覆盖报告时,Jest使用的报告名称列表。任何<一种href="https://github.com/istanbuljs/istanbuljs/tree/master/packages/istanbul-reports/lib" target="_blank" rel="noopener noreferrer">伊斯坦布尔的记者可以使用。

注意:设置此选项将覆盖默认值。添加<代码>“文本”或<代码>“文本摘要”在控制台输出中查看覆盖摘要。

注意:您可以使用tuple表单将其他选项传递给istanbul记者。比如:

[ “json” [ “lcov” { “projectRoot” “. . / . . /” } ] ]

有关可参考的选项对象形状的附加信息<代码>覆盖机主WithOptions.输入<一种href="https://github.com/facebook/jest/tree/master/packages/jest-types/src/Config.ts" target="_blank" rel="noopener noreferrer">类型定义

覆盖物(对象)<一种类="hash-link" href="#coveragethreshold-object" title="#">#

默认值:<代码>未定义的

这将用于为覆盖结果配置最小阈值强制执行。可以将阈值指定为<代码>全球的那作为一个<一种href="https://github.com/isaacs/node-glob" target="_blank" rel="noopener noreferrer">一团,并作为目录或文件路径。如果没有达到阈值,玩笑就会失败。指定为正数的阈值被认为是所需的最小百分比。指定为负数的阈值表示允许未发现实体的最大数目。

例如,如果在少于80%的分支,行和函数覆盖范围,或者有超过10个未发现的语句:

{
...
“笑话” {
“cuckagehethreshold” {
“全球” {
“分支” 80
“功能” 80
“行” 80
“陈述” -10
}
}
}
}

如果在旁边指定了globs或路径<代码>全球的,将从整体覆盖范围中减去用于匹配路径的覆盖数据,并且将独立应用阈值。Globs的阈值适用于匹配Glob的所有文件。如果找不到路径指定的文件,则返回错误。

例如,配置如下:

{
...
“笑话” {
“cuckagehethreshold” {
“全球” {
“分支” 50.
“功能” 50.
“行” 50.
“陈述” 50.
}
“./src/components/” {
“分支” 40
“陈述” 40
}
”。/ src /还原剂/ * * / * . js” {
“陈述” 90.
}
”。/ src / api / very-important-module.js” {
“分支” One hundred.
“功能” One hundred.
“行” One hundred.
“陈述” One hundred.
}
}
}
}

如果:

  • 这<代码>/src /组件Directory的分支或报表覆盖率小于40%。
  • 其中一个匹配的文件<代码>。/src /还原剂/ * * / * . jsGlob的报表覆盖率不到90%。
  • 这<代码>。/SRC /一种pi/very-important-module.js.文件的覆盖范围小于100%。
  • 每个剩余文件组合的覆盖率小于50%(<代码>全球的).

DependencyExtractor.(字符串)<一种类="hash-link" href="#dependencyextractor-string" title="#">#

默认值:<代码>未定义的

此选项允许使用自定义依赖提取器。它必须是一个导出对象的节点模块<代码>提炼函数。例如:

常量 加密 = 要求 “密码” ;
常量 fs = 要求 'FS' ;
模块 出口 = {
提炼 代码 filePath defaultExtract {
常量 DEPS. = defaultExtract 代码 filePath ;
//扫描文件并在' deps '(这是一个' Set ')中添加依赖项
返回 DEPS. ;
}
getcachekey. {
返回 加密
createHash md5的
更新 fs readfilesync. __filename
消化 '六角' ;
}
} ;

这<代码>提炼函数应返回一个可迭代对象(<代码>数组那<代码>集等)与代码中的依赖关系。

该模块还可以包含<代码>getcachekey.函数生成一个缓存键,以确定逻辑是否已更改,并应丢弃依赖于该键的任何缓存工件。

显示名称(字符串、对象)<一种类="hash-link" href="#displayname-string-object" title="#">#

默认值:<代码>未定义的

允许标签在测试运行时打印在测试旁边。这在有许多jest配置文件的多项目存储库中变得更加有用。这可以直观地告诉测试属于哪个项目。以下是有效值的示例。

模块 出口 = {
显示名称 '客户'
} ;

模块 出口 = {
显示名称 {
的名字 '客户'
颜色 “蓝”
}
} ;

作为辅助选项,具有属性的对象<代码>的名字和<代码>颜色可以通过。这允许对displayName的背景颜色进行自定义配置。<代码>显示名称当它的值是字符串时,默认为白色。Jest利用<一种href="https://github.com/chalk/chalk" target="_blank" rel="noopener noreferrer">粉笔来提供颜色。因此,jest也支持粉笔支持的所有有效颜色选项。

errorOnDeprecated(布尔)<一种类="hash-link" href="#errorondeprecated-boolean" title="#">#

默认值:<代码>假

使调用已弃用的api抛出有用的错误消息。亚搏取款有助于简化升级过程。

extraGlobals[数组]<一种类="hash-link" href="#extraglobals-arraystring" title="#">#

默认值:<代码>未定义的

测试文件在a内运行<一种href="https://nodejs.org/api/vm.html" target="_blank" rel="noopener noreferrer">VM.,这会减慢对全局上下文属性的调用(例如:<代码>数学).使用这个选项,您可以指定在vm内部定义的额外属性,以便更快地查找。

例如,如果您的测试调用<代码>数学通常,您可以通过设置来传递它<代码>extraGlobals

{
...
“笑话” {
“extraGlobals” [ “数学” ]
}
}

forceCoverageMatch[数组]<一种类="hash-link" href="#forcecoveragematch-arraystring" title="#">#

默认值:<代码>["]

在收集代码覆盖时,测试文件通常被忽略。使用此选项,您可以覆盖此行为,并在代码覆盖中包含忽略的文件。

例如,如果您在命名的源文件中有测试<代码>。t.js扩展:

// sum.t.js.
出口 函数 一种 B. {
返回 一种 + B. ;
}
如果 过程 env. node_env. === '测试' {
测试 “和” => {
预计 1 2 托比 3. ;
} ;
}

您可以使用设置从这些文件中收集覆盖范围<代码>forceCoverageMatch

{
...
“笑话” {
“forceCoverageMatch” [ “* * / * .t.js” ]
}
}

全局变量(对象)<一种类="hash-link" href="#globals-object" title="#">#

默认值:<代码>{}

一组需要在所有测试环境中可用的全局变量。

例如,以下将创建一个全局<代码>__DEV__变量设置为<代码>真正的在所有测试环境中:

{
...
“笑话” {
“全局” {
“__DEV__” 真正的
}
}
}

请注意,如果您在这里指定了一个全局引用值(如对象或数组),而某些代码在运行测试期间更改了该值,则该更改将会发生在其他测试文件的测试运行中被持久化。此外,<代码>全局变量对象必须是JSON-Serializable,因此不能用于指定全局函数。为此,你应该使用<代码>setupFiles

globalSetup(字符串)<一种类="hash-link" href="#globalsetup-string" title="#">#

默认值:<代码>未定义的

该选项允许使用自定义全局设置模块,该模块导出一个在所有测试套件之前触发一次的异步函数。这个函数得到Jest的<代码>globalConfig对象作为参数。

注意:只有在项目中运行至少一个测试时,才会触发在项目中配置的全局设置模块(使用多项目运行器)。

注意:通过定义的任何全局变量<代码>globalSetup只能阅读<代码>GlobalTeardown..您不能检索在测试套件中定义的全局变量。

注意:当代码转换应用于链接的安装文件时,Jest将转换任何代码<代码>Node_modules.这是由于需要加载实际变压器(例如<代码>禁止禁忌或<代码>打印稿)进行转换。

例子:

/ / setup.js
模块 出口 = 异步 => {
// ......
//设置mongod的引用,以便在拆卸时关闭服务器。
全球的 __MONGOD__ = mongod ;
} ;
/ / teardown.js
模块 出口 = 异步 函数 {
等待 全球的 __MONGOD__ 停止 ;
} ;

GlobalTeardown.(字符串)<一种类="hash-link" href="#globalteardown-string" title="#">#

默认值:<代码>未定义的

此选项允许使用自定义全局拆除模块,该模块导出所有测试套件后触发的异步功能。这个函数得到Jest的<代码>globalConfig对象作为参数。

注意:将在从该项目中至少运行一次测试时,才会触发在项目中配置的全局拆除模块(使用多项目运行器)。

注:关于的转换同样需要注意<代码>Node_modules至于<代码>globalSetup适用于<代码>GlobalTeardown.

赶快(对象)<一种类="hash-link" href="#haste-object" title="#">#

默认值:<代码>未定义的

这将用于配置行为<代码>jest-haste-map,Jest的内部文件爬网程序/缓存系统。支持以下选项:

类型 HasteConfig = {
//是否使用SHA-1哈希文件。
computeSha1 布尔基 ;
//使用作为默认的平台,例如,'ios'。
defecientplatform. 字符串 | ;
//自定义的Haste实现路径。
hasteImplModulePath 字符串 ;
//所有的目标平台,例如['ios', 'android']。
平台 数组 < 字符串 > ;
//是否在模块碰撞上抛出错误。
throwOnModuleCollision 布尔基 ;
} ;

inject globals.(布尔)<一种类="hash-link" href="#injectglobals-boolean" title="#">#

默认值:<代码>真正的

插入Jest的全局变量(<代码>预计那<代码>测试那<代码>描述那<代码>摘要)进入全球环境。如果您将其设置为<代码>假,您应该从<代码>@ jest / globals那如。

进口 { 预计 笑话 测试 } “@jest /全局” ;
笑话 Usefaketimers. ;
测试 '一些测试' => {
预计 日期 现在 托比 0. ;
} ;

注意:仅支持此选项<代码>jest-circus

maxConcurrency(数量)<一种类="hash-link" href="#maxconcurrency-number" title="#">#

默认值:<代码>5.。

在使用时限制允许同时运行的测试的数量<代码>test.concurrent.。.一旦插槽被释放,任何超过这个限制的测试都将被排队并执行。

moduledirectories[数组]<一种类="hash-link" href="#moduledirectories-arraystring" title="#">#

默认值:<代码>[“node_modules”]

要从需求模块的位置递归地搜索一系列目录名称。设置此选项将覆盖如果您希望继续搜索,则使用默认值<代码>Node_modules对于包包括它与任何其他选项:<代码>[" node_modules”、“bower_components”)

modulefileextensions.[数组]<一种类="hash-link" href="#modulefileextensions-arraystring" title="#">#

默认值:<代码>[“JS”,“JSON”,“JSX”,“TS”,“TSX”,“节点”]

模块使用的文件扩展名数组。如果需要模块而不指定文件扩展名,那么Jest将按照从左到右的顺序查找这些扩展名。

我们建议您将扩展置于左侧的项目中最常用,因此如果您使用的是类型签字,则可能需要考虑将“TS”和/或“TSX”移动到数组的开头。

moduleNameMapper[object \ >]<一种类="hash-link" href="#modulenamemapper-objectstring-string--arraystring" title="#">#

默认值:<代码>零

从正则表达式到模块名称的地图或模块名称阵列,允许存根资源,如图像或具有单个模块的样式。

默认情况下,映射到别名的模块,无论是否启用了Automocking。

使用<代码>字符串令牌要提到<一种href="#rootdir-string">rootDir值,如果您想使用文件路径。

此外,您可以使用Numbered BackReferents替换捕获的Regex组。

例子:

{
“moduleNameMapper” {
“^形象![一种-zA-Z0-9$_-]+$" “GlobalImageStub”
“^ [./ a-za-z0-9 $ _-] +。PNG $” “< rootDir > / RelativeImageStub.js”
“module_name _(。*)” “< rootDir > / substituted_module_ js 1.美元”
“资产/(. *)” [
“< rootDir > /图片/ 1美元”
/照片/ 1美元”
“< rootDir > /菜谱/ 1美元”
]
}
}

定义映射的顺序很重要。图案被一个一个地检查,直到一个适合。首先应该列出最具体的规则。对于模块名称数组也是如此。

注意:如果您提供没有边界的模块名称<代码>^ $它可能会造成难以发现错误。例如。<代码>继电器将替换包含的所有模块<代码>继电器作为其名称中的子字符串:<代码>继电器那<代码>反应继电器和<代码>GraphQL-RELAY.都会指向你的存根。

modulePathIgnorePatterns[数组]<一种类="hash-link" href="#modulepathignorepatterns-arraystring" title="#">#

默认值:<代码>[]

一个regexp模式字符串数组,在模块加载器将所有模块路径视为“可见”之前匹配这些路径。如果给定模块的路径与任何模式匹配,则不匹配<代码>要求()-一种B.le在测试环境中。

这些模式字符串与完整路径匹配。使用<代码>包含项目根目录路径的字符串令牌,以防止它意外地忽略不同环境中可能有不同根目录的所有文件。例子:<代码>[" < rootDir > /构建/”)

modulePaths[数组]<一种类="hash-link" href="#modulepaths-arraystring" title="#">#

默认值:<代码>[]

的另一种API<代码>NODE_PATHenv.变量,<代码>modulePaths是在解析模块时要搜索的附加位置的绝对路径数组。使用<代码>字符串令牌,以包含项目根目录的路径。例子:<代码>[" < rootDir > / app /”)

通知(布尔)<一种类="hash-link" href="#notify-boolean" title="#">#

默认值:<代码>假

激活测试结果的通知。

请注意:Jest利用<一种href="https://github.com/mikaelbr/node-notifier" target="_blank" rel="noopener noreferrer">node-notifier显示桌面通知。在Windows上,它在第一次使用时创建一个新的开始菜单项,而不显示通知。通知将在后续运行中正确显示

notifyMode(字符串)<一种类="hash-link" href="#notifymode-string" title="#">#

默认值:<代码>failure-change

指定通知模式。需要<代码>通知:真实

模式<一种类="hash-link" href="#modes" title="#">#

  • 总是:总是发送通知。
  • 失败:测试失败时发送通知。
  • 成功:测试通过时发送通知。
  • 改变:当状态改变时发送通知。
  • success-change:当测试通过时发送通知,当测试失败时发送一次通知。
  • failure-change:当测试失败或通过测试时发送一次通知。

预设(字符串)<一种类="hash-link" href="#preset-string" title="#">#

默认值:<代码>未定义的

用作Jest配置的基础的预设。预设应指向具有A的NPM模块<代码>jest-preset.json或<代码>jest-preset.jsroot文件。

例如,这个预设<代码>喷火酒吧/jest-preset.js将配置如下:

{
“预设” “foo bar”
}

预设也可能相对于文件系统路径。

{
“预设” “./node_modules/foo-bar/jest-preset.js”
}

prettierpath.(字符串)<一种类="hash-link" href="#prettierpath-string" title="#">#

默认值:<代码>'漂亮'

的路径<一种href="https://prettier.io/" target="_blank" rel="noopener noreferrer">漂亮用于更新内联快照的节点模块。

项目[数组]<一种类="hash-link" href="#projects-arraystring--projectconfig" title="#">#

默认值:<代码>未定义的

当<代码>项目开玩笑将在所有指定的项目中同时运行测试。这对于monorepos或者同时处理多个项目来说是非常棒的。

{
“项目” [ “< rootDir > /例子/ *” ]
}

这个示例配置将在根目录以及example目录中的每个文件夹中运行Jest。您可以在同一个Jest实例中运行无限数量的项目。

项目特性还可以用于运行多个配置或多个<一种href="#runner-string">跑步者.为此,您可以传递一系列配置对象。例如,运行测试和eslint(通过<一种href="https://github.com/jest-community/jest-runner-eslint" target="_blank" rel="noopener noreferrer">jest-runner-eslint)在同一呼叫中:

{
“项目” [
{
“显示名称” “测试”
}
{
“显示名称” “棉絮”
“跑步者” “jest-runner-eslint”
“testMatch” [ “< rootDir > / * * / * . js” ]
}
]
}

注意:当使用多项目运行器时,建议添加<代码>显示名称每个项目。这将显示<代码>显示名称测试旁边的项目

记者[数组]<一种类="hash-link" href="#reporters-arraymodulename--modulename-options" title="#">#

默认值:<代码>未定义的

使用此配置选项将自定义记者添加到Jest。自定义报告者是一种实现的类<代码>onrunstart.那<代码>onteststart.那<代码>ontestresult.那<代码>onrunco​​mplete.将在发生任何这些事件时调用的方法。

如果指定了自定义记录者,则将覆盖默认的JEST报告者。要保留默认记者,<代码>默认的可以作为模块名传递。

这将覆盖默认报告程序:

{
“记者” [ /my-custom-reporter.js” ]
}

除了JEST提供的默认记录者之外,这将使用自定义报告管理员:

{
“记者” [ “默认” /my-custom-reporter.js” ]
}

此外,自定义报告器可以通过传递<代码>选项对象作为第二个参数:

{
“记者” [
“默认”
[ /my-custom-reporter.js” { “香蕉” “是的” “菠萝” “不” } ]
]
}

自定义报告器模块必须定义一个接受<代码>GlobalConfig报告器选项作为构造函数参数:

记者:例子

// my-custom-eporter.js
mycustomreporter {
构造函数 globalConfig 选项 {
_globalconfig = globalConfig ;
_选项 = 选项 ;
}
onrunco​​mplete. 背景 结果 {
控制台 日志 “自定义输出:记者” ;
控制台 日志 “GlobalConfig:” _globalconfig ;
控制台 日志 '选项: ' _选项 ;
}
}
模块 出口 = mycustomreporter ;
//或导出默认mycustomreporter;

自定义报告器还可以通过返回错误来强制Jest退出非0代码<代码>每个盘()方法

mycustomreporter {
// ......
每个盘 {
如果 _shouldFail {
返回 错误 'My-Custom-Reporter.js报告了一个错误' ;
}
}
}

有关方法和参数类型的完整列表,请参见<代码>记者界面<一种href="https://github.com/facebook/jest/blob/master/packages/jest-reporters/src/types.ts" target="_blank" rel="noopener noreferrer">包/ jest-reporters / src / types.ts

resetmocks.(布尔)<一种类="hash-link" href="#resetmocks-boolean" title="#">#

默认值:<代码>假

每次测试前自动重置模拟状态。相当于调用<代码>笑话。resetallmocks()在每个测试之前。这将导致任何mock被删除其虚假实现,但不会恢复其初始实现。

重置模块(布尔)<一种类="hash-link" href="#resetmodules-boolean" title="#">#

默认值:<代码>假

默认情况下,每个测试文件获取自己的独立模块注册表。启用<代码>重置模块更进一步,在运行每个单独的测试之前重置模块注册表。这对于为每个测试隔离模块非常有用,这样本地模块状态就不会在测试之间发生冲突。这可以通过编程方式使用<一种href="/es-ES/docs/jest-object">jest.resetModules ()

解析器(字符串)<一种类="hash-link" href="#resolver-string" title="#">#

默认值:<代码>未定义的

此选项允许使用自定义解析器。该解析器必须是一个节点模块,该模块导出一个函数,该函数期望将字符串作为要解析路径的第一个参数,并将具有以下结构的对象作为第二个参数:

{
“basedir” 字符串
“defaultresolver” “函数(请求,选项)”
“扩展” [ 字符串 ]
“moduleDirectory” [ 字符串 ]
“道路” [ 字符串 ]
“packageFilter” 添加pkgdir”功能(pkg)”
“rootdir” [ 字符串 ]
}

该函数要么返回一个应该解析的模块的路径,要么在找不到模块时抛出一个错误。

注意:作为选项传递的defaultResolver是Jest的默认解析器,当你编写自定义解析器时,它可能会很有用。它的参数和你习惯的一样。<代码>(请求,选项)

例如,如果你想要尊重Browserify<一种href="https://github.com/browserify/browserify-handbook/blob/master/readme.markdown" target="_blank" rel="noopener noreferrer">“浏览器”,您可以使用以下配置:

{
...
“笑话” {
“解析器” “< rootDir > / resolver.js”
}
}
/ / resolver.js
常量 browserResolve = 要求 “browser-resolve” ;
模块 出口 = browserResolve 同步 ;

通过结合<代码>防御特质和<代码>packetfilter.我们可以实现<代码>package.json.。“预处理器”,它允许我们改变默认解析器解析模块的方式。例如,假设我们想要使用字段<代码>“模块”如果有,则回退到<代码>“主要的”

{
...
“笑话” {
“解析器” “my-module-resolve”
}
}
/ / my-module-resolve包
模块 出口 = 请求 选项 => {
//调用defaultResolver,这样我们就可以利用它的缓存、错误处理等。
返回 选项 防御特质 请求 {
... 选项
//使用packagfilter处理已解析的包。Json '之前的分辨率(见https://www.npmjs.com/package/resolve#resolveid-opts-cb)
packetfilter. 包裹 => {
返回 {
... 包裹
//在解决包装之前改变'main`的值
主要 包裹 模块 || 包裹 主要
} ;
}
} ;
} ;

修复器(布尔)<一种类="hash-link" href="#restoremocks-boolean" title="#">#

默认值:<代码>假

在每次测试之前自动恢复模拟状态。相当于调用<代码>笑话。restoreallmocks()在每个测试之前。这将导致任何模拟将被删除其假实现并恢复其初始实现。

rootDir(字符串)<一种类="hash-link" href="#rootdir-string" title="#">#

Default:包含Jest的目录的根目录<一种href="#">配置文件这<代码>package.json.。这<一种href="http://en.wikipedia.org/wiki/Pwd" target="_blank" rel="noopener noreferrer">松材线虫病如果没有<代码>package.json.。被发现

Jest应该在内部的测试和模块扫描的根目录。如果将您的Jest Config放入您的内部<代码>package.json.。并且希望根目录是repo的根目录,这个配置参数的值将默认为<代码>package.json.。

通常,你想要将此设置为<代码>'src'或<代码>'lib',对应于代码存储库中的存储位置。

注意,使用<代码>' < rootDir >”作为任何其他路径的配置设置中的字符串令牌将引用此值。所以,例如,如果你想要你的<一种href="#setupfiles-array">setupFiles配置输入点<代码>env-setup.js文件在项目根目录中,您可以将其值设置为<代码>[" < rootDir > / env-setup.js”)

[数组]<一种类="hash-link" href="#roots-arraystring" title="#">#

默认值:<代码>[" < rootDir >”)

Jest应该用于在其中搜索文件的目录的路径列表。

有些时候,您只希望Jest在单个子目录中搜索(例如有<代码>SRC /目录),但阻止它访问repo的其余部分。

注意:虽然<代码>rootDir大多数用作要重新使用的令牌以其他配置选项,<代码>根开玩笑的内部是用来定位测试文件和源文件.这也适用于搜索来自的模块的手动模拟<代码>Node_modules(<代码>__mocks__需要住在其中一个<代码>根).

注意:默认情况下,<代码>根只有一个条目<代码>但是,有些情况下,您可能希望在一个项目中有多个根源,例如<代码>根:[" < rootDir > / src /”,“< rootDir > /测试/”)

跑步者(字符串)<一种类="hash-link" href="#runner-string" title="#">#

默认值:<代码>“jest-runner”

这个选项允许您使用自定义运行器而不是Jest的默认测试运行器。跑步者的例子包括:

注意:<代码>跑步者属性值可以省略<代码>jest-runner-包名的前缀。

要编写测试运行器,请导出一个接受它的类<代码>globalConfig在构造函数中,和具有<代码>runTests签名的方法:

异步 runTests
测试 数组 < 测试 >
观察家 TestWatcher
onStart OnTestStart
onResult ontestsuccess.
onFailure ontestfailure.
选项 TestRunnerOptions
承诺 < 无效 >

如果您需要限制您的测试运行器仅以串行方式运行而不是并行地执行,那么您的类应该具有该属性<代码>isSerial设为<代码>真正的

setupFiles[大批]<一种类="hash-link" href="#setupfiles-array" title="#">#

默认值:<代码>[]

运行一些代码以配置或设置测试环境的模块的路径列表。每个setupFile将在每个测试文件中运行一次。由于每个测试都在它自己的环境中运行,所以这些脚本将在测试环境中立即执行,然后再执行测试代码本身。

这也值得注意的是<代码>setupFiles将执行之前setupFilesAfterEnv

setupFilesAfterEnv[大批]<一种类="hash-link" href="#setupfilesafterenv-array" title="#">#

默认值:<代码>[]

在执行套件中的每个测试文件之前,运行一些代码来配置或设置测试框架的模块的路径列表。自<一种href="#setupfiles-array">setupFiles在环境中安装测试框架之前执行,这个脚本文件为您提供了在环境中安装测试框架之后立即运行一些代码的机会。

如果你想要一个路径<一种href="#rootdir-string">相对于项目的根目录请包括<代码>在路径的字符串中,比如<代码>“< rootDir > / a-configs-folder”

例如,具有若干插件的jest船只<代码>茉莉花通过猴子修补jasmine API来工作。如果您想要添加更多的jasmine插件(或者如果您想要一些自定义的,例如项目范围的匹配器),您可以在这些模块中这样做。

注意:<代码>setupTestFrameworkScriptFile被反对以支持<代码>setupFilesAfterEnv

例子<代码>setupFilesAfterEnvjest.config.js中的数组:

模块 出口 = {
setupFilesAfterEnv [ ”。/ jest.setup.js ' ]
} ;

例子<代码>jest.setup.js文件

笑话 setTimeout 10000 ; //以毫秒为单位

慢率慢(数量)<一种类="hash-link" href="#slowtestthreshold-number" title="#">#

默认值:<代码>5.。

在此之后,测试被认为是慢的,并在结果中报告为慢的秒数。

snapshotResolver(字符串)<一种类="hash-link" href="#snapshotresolver-string" title="#">#

默认值:<代码>未定义的

可以解析测试< - >快照路径的模块的路径。此配置选项允许您自定义Jest在磁盘上存储快照文件的位置。

示例Snapshot Resolver模块:

模块 出口 = {
//从测试中解析为快照路径
deathersnapshotpath. testpath. snapshotExtension =>
testpath. 取代 '__tests__' “__snapshots__” + snapshotExtension
//从快照解析到测试路径
resolveTestPath snapshotFilePath snapshotExtension =>
snapshotFilePath
取代 “__snapshots__” '__tests__'
0. - snapshotExtension 长度
//测试路径示例,用于上述实现的飞行前一致性检查
testPathForConsistencyCheck “一些/ __tests__ / example.test.js”
} ;

Snapshotserializers.[数组]<一种类="hash-link" href="#snapshotserializers-arraystring" title="#">#

默认值:<代码>[]

Snapshot Serializer模块Jest的路径列表应用于快照测试。

Jest有默认的JavaScript类型序列化器,HTML元素(Jest 20.0.0+), ImmutableJS (Jest 20.0.0+)和React元素序列化器。看到<一种href="/es-ES/docs/tutorial-react-native">快照测试教程了解更多信息。

示例序列化器模块:

// my-serializer-module
模块 出口 = {
序列化 配置 缩进 深度 参考文献 打印机 {
返回 '漂亮foo:' + 打印机 喷火 ;
}
测试 {
返回 & & hasOwnProperty “foo” ;
}
} ;

打印机是一个使用现有插件序列化值的函数。

使用<代码>my-serializer-module作为序列化器,配置如下:

{
...
“笑话” {
“snapshotSerializers” [ “my-serializer-module” ]
}
}

最后的测试如下所示:

测试 => {
常量 酒吧 = {
喷火 {
X 1
y 2
}
} ;
预计 酒吧 tomatchsnapshot. ;
} ;

呈现快照:

漂亮的喷火 对象 {
“X” 1
“y” 2
}

要使依赖性显式而不是隐式,可以调用<一种href="/es-ES/docs/expect">expect.addSnapshotSerializer为单个测试文件添加模块,而不是添加其路径<代码>Snapshotserializers.在Jest配置中。

可以找到更多关于序列化器API的信息<一种href="https://github.com/facebook/jest/tree/master/packages/pretty-format/README.md" target="_blank" rel="noopener noreferrer">这里

testEnvironment(字符串)<一种类="hash-link" href="#testenvironment-string" title="#">#

默认值:<代码>“jsdom”

将用于测试的测试环境。Jest中的默认环境是一个类似浏览器的环境<一种href="https://github.com/jsdom/jsdom" target="_blank" rel="noopener noreferrer">jsdom.如果您正在构建节点服务,则可以使用<代码>节点选择使用类似节点的环境。

通过添加一个<代码>@jest-environmentDocBlock在文件顶部,您可以指定用于该文件中所有测试的另一个环境:

/**
* @ jest-environment jsdom
*/
测试 '在此测试文件中使用JSDOM' => {
常量 元素 = 文档 牧马赛 'div' ;
预计 元素 Tobenull. ;
} ;

您可以创建自己的模块,用于设置测试环境。模块必须导出类<代码>设置那<代码>拆卸和<代码>runScript方法。您还可以将变量从这个模块传递到您的测试套件,方法是将它们赋给<代码>this.global这将使它们作为全局变量在测试套件中可用。

类可以选择性地公开异步对象<代码>handleTestEvent方法绑定到由<一种href="https://github.com/facebook/jest/tree/master/packages/jest-circus" target="_blank" rel="noopener noreferrer">jest-circus.通常情况下,<代码>jest-circus测试赛跑者将暂停,直到返回的承诺<代码>handleTestEvent得到满足,除了接下来的比赛:<代码>start_describe_definition那<代码>finish_describe_definition那<代码>一种dd_hook那<代码>一种dd_test.或<代码>错误你可以查看最新的列表<一种href="https://github.com/facebook/jest/tree/master/packages/jest-types/src/Circus.ts" target="_blank" rel="noopener noreferrer">类型定义中的SyncEvent类型).这是由后向兼容性的原因引起的<代码>过程。on('unhandledlextre',回调)签名,但对于大多数用例来说,这通常不是问题。

测试文件中的任何docblock pragmas都将被传递给环境构造函数,并可用于每个测试的配置。如果pragma没有值,它将出现在对象中,并将其值设置为空字符串。如果pragma不存在,它将不会出现在对象中。

要将此类用作自定义环境,请通过项目中的完整路径来引用它。例如,如果您的类存储在<代码>My-Custom-Environment.js在项目的一些子文件夹中,注释可能像这样:

/**
* @jest-environment。/ src /测试/ my-custom-environment
*/

注意:TestEnvironment是沙盒。每个测试套件都会在自己的测试环境中触发设置/拆除。

例子:

/ / my-custom-environment
常量 NodeEnvironment = 要求 “jest-environment-node” ;
CustomEnvironment 延伸 NodeEnvironment {
构造函数 配置 上下文 {
超级 配置 上下文 ;
testpath. = 上下文 testpath. ;
docblockPragmas = 上下文 docblockPragmas ;
}
异步 设置 {
等待 超级 设置 ;
等待 someSetupTasks testpath. ;
全球的 someGlobalObject = createglobalobject. ;
//如果docblock包含@my-custom-pragma my-pragma-value,则会触发
如果 docblockPragmas [ “my-custom-pragma” ] === '我的pragma-value' {
// ......
}
}
异步 拆卸 {
全球的 someGlobalObject = destroyGlobalObject ;
等待 someTeardownTasks ;
等待 超级 拆卸 ;
}
runScript 脚本 {
返回 超级 runScript 脚本 ;
}
异步 handleTestEvent 事件 状态 {
如果 事件 的名字 === “test_start” {
// ......
}
}
}
模块 出口 = CustomEnvironment ;
/ / my-test-suite
/**
* @jest-environment。/ my-custom-environment
*/
someGlobalObject ;
Beforeall. => {
someGlobalObject = 全球的 someGlobalObject ;
} ;

testEnvironmentOptions(对象)<一种类="hash-link" href="#testenvironmentoptions-object" title="#">#

默认值:<代码>{}

测试环境选项将传递给<代码>testEnvironment.相关选项取决于环境。例如,您可以覆盖给定的选项<一种href="https://github.com/jsdom/jsdom" target="_blank" rel="noopener noreferrer">jsdom如<代码>{使用rAgent:“代理/ 007”}

testfailureexitcode.(数量)<一种类="hash-link" href="#testfailureexitcode-number" title="#">#

默认值:<代码>1

Jest在测试失败时返回退出代码。

注意:这不会在Jest错误的情况下更改退出代码(例如,配置无效)。

试验[数组]<一种类="hash-link" href="#testmatch-arraystring" title="#">#

(默认值:<代码>[" * * / __tests__ / * * / *。(jt) s ? (x )", "**/?(*.)+( 规范|测试)。(jt) s ? (x)”]

Jest使用glob模式来检测测试文件。默认情况下,它查找<代码>。js那<代码>。jsx那<代码>。ts和<代码>。tsx文件里面的文件<代码>__tests__文件夹,以及后缀为<代码>。测试或<代码>。spec(如。<代码>Component.test.js或<代码>Component.spec.js).它还将查找名为<代码>test.js.。或<代码>spec.js

看看<一种href="https://github.com/jonschlinkert/micromatch" target="_blank" rel="noopener noreferrer">micromatch包以获取可以指定的模式的详细信息。

另请参阅<一种href="#testregex-string--arraystring">testRegex(字符串数组| <字符串>),但请注意,您无法指定两个选项。

testPathIgnorePatterns[数组]<一种类="hash-link" href="#testpathignorepatterns-arraystring" title="#">#

默认值:<代码>[" / node_modules "]

在执行测试之前,与所有测试路径匹配的regexp模式字符串数组。如果测试路径与任何模式匹配,它将被跳过。

这些模式字符串与完整路径匹配。使用<代码>包含项目根目录路径的字符串令牌,以防止它意外地忽略不同环境中可能有不同根目录的所有文件。例子:<代码>[" < rootDir > /构建/”,“< rootDir > / node_modules /”)

testRegex(字符串数组| <字符串>)<一种类="hash-link" href="#testregex-string--arraystring" title="#">#

默认值:<代码>(/__tests __/.*|(\\.|/)( |规范))\ \测试。(jt) sx吗?$

Jest用于检测测试文件的一个或多个模式。默认情况下,它查找<代码>。js那<代码>。jsx那<代码>。ts和<代码>。tsx文件里面的文件<代码>__tests__文件夹,以及后缀为<代码>。测试或<代码>。spec(如。<代码>Component.test.js或<代码>Component.spec.js).它还将查找名为<代码>test.js.。或<代码>spec.js.另请参阅<一种href="#testmatch-arraystring">试验[数组],但请注意,您无法指定两个选项。

下面是默认正则表达式的可视化:

├──__tests__
│└──component.spec.js # 测试
│└──任何东西 # 测试
├──包 #没有测试
├──foo.test.js # 测试
├──bar.spec.jsx # 测试
└──component.js #没有测试

注意:<代码>testRegex将尝试使用绝对文件路径,因此,拥有一个名称与之匹配的文件夹将作为测试运行所有文件

testResultsProcessor(字符串)<一种类="hash-link" href="#testresultsprocessor-string" title="#">#

默认值:<代码>未定义的

此选项允许使用自定义结果处理器。此处理器必须是导出函数的节点模块,该函数期望具有以下结构的对象作为第一个参数并返回它:

{
“成功” 布尔基
“开始时间” 时代
“numtotaltestsuites” 数字
“numPassedTestSuites” 数字
“numFailedTestSuites” 数字
“numruntimeerraettessuites” 数字
“numtottests” 数字
“numPassedTests” 数字
“numFailedTests” 数字
“numPendingTests” 数字
“numTodoTests” 数字
“openHandles” 阵列误差< >
“检测结果” [ {
“numfailingtests” 数字
“numPassingTests” 数字
“numPendingTests” 数字
“检测结果” [ {
“标题” 字符串(IT块中的消息)
“地位” “失败” | “等待” | “通过”
“ancestorTitles” [ 字符串(描述块中的消息) ]
“failureMessages” [ 字符串 ]
“numPassingAsserts” 数字
“地点” {
“列” 数字
“行” 数字
}
}
...
]
“perfstats” {
“开始” 时代
“结束” 时代
}
“testfilepath” 测试文件的绝对路径
“报道” { }
}
...
]
}

TestRunner.(字符串)<一种类="hash-link" href="#testrunner-string" title="#">#

默认值:<代码>jasmine2

此选项允许使用自定义测试运行器。默认值是jasmine2。可以通过指定到测试运行器实现的路径来提供自定义测试运行器。

测试运行器模块必须导出具有以下签名的函数:

函数 TestRunner.
globalConfig GlobalConfig
配置 ProjectConfig
环境 环境
运行时 运行
testpath. 字符串
承诺 < TestResult > ;

在我们的默认情况下可以找到此类功能的示例<一种href="https://github.com/facebook/jest/blob/master/packages/jest-jasmine2/src/index.ts" target="_blank" rel="noopener noreferrer">Jasmine2测试运行程序包

testSequencer(字符串)<一种类="hash-link" href="#testsequencer-string" title="#">#

默认值:<代码>@jest / test-sequencer

这个选项允许您使用自定义音序器而不是Jest的默认音序器。<代码>排序可以选择返回一个Promise。

例子:

按字母顺序排序测试路径。

/ / testSequencer.js
常量 定序器 = 要求 '@ jest / test-sequencer' 默认的 ;
CustomSequencer 延伸 定序器 {
排序 测试 {
//测试结构信息
// https://github.com/facebook/jest/blob/6b8b1404a1d9254e7d5d90a8989087a9c9899dab/packages/jest-runner/src/types.ts.ts#l17-l21
常量 CopyTests. = 数组 测试 ;
返回 CopyTests. 排序 外种皮 => 外种皮 路径 > 路径 1 - 1 ;
}
}
模块 出口 = CustomSequencer ;

在您的JEST配置文件中使用它:

{
“testSequencer” “路径/ / testSequencer.js”
}

testTimeout(数量)<一种类="hash-link" href="#testtimeout-number" title="#">#

默认值:<代码>5000

以毫秒为单位测试的默认超时。

testurl.(字符串)<一种类="hash-link" href="#testurl-string" title="#">#

默认值:<代码>http://localhost

此选项设置JSDOM环境的URL。它反映在如<代码>location.href

计时器(字符串)<一种类="hash-link" href="#timers-string" title="#">#

默认值:<代码>真正的

将此值设置为<代码>遗产或<代码>伪造的允许对函数使用假计时器,例如<代码>setTimeout.当一段代码设置了一个我们不想在测试中等待的长超时时,假计时器是有用的。

如果值为<代码>现代那<一种href="https://github.com/sinonjs/fake-timers" target="_blank" rel="noopener noreferrer">@sinonjs / fake-timers将用作实施而不是Jest的自己的遗留实施。这将是JEST 27中的默认假执行。

变换[object \ ]<一种类="hash-link" href="#transform-objectstring-pathtotransformer--pathtotransformer-object" title="#">#

默认值:<代码>{“\\。[jt] sx?$”:“babel-jest”}

从正则表达式到路径到转换器的映射。转换器是提供用于转换源文件的同步函数的模块。例如,如果希望能够在模块或测试中使用节点还不支持的新语言特性,可以插入许多编译器中的一个,将JavaScript的未来版本编译为当前版本。例如:看<一种href="https://github.com/facebook/jest/blob/master/examples/typescript/package.json" target="_blank" rel="noopener noreferrer">示例/ typescript.示例或者<一种href="/es-ES/docs/webpack">网客教程

这种编译器的例子包括:

您可以像这样将配置传递给转换器<代码>{文件Pattern: [path-to-transformer,{选项}]}例如,要为非默认行为配置babel-jest,<代码>{"\\.js$": ['babel-jest', {rootMode: "向上"}]}

注意:除非文件已更改,否则转换器每个文件只运行一次。在开发变压器期间,使用它运行Jest是很有用的<代码>-NNo-cache.经常<一种href="/es-ES/docs/troubleshooting">删除Jest的缓存

注意:添加其他代码变压器时,这将覆盖默认配置和<代码>禁止禁忌-开玩笑。不再自动加载。如果你想用它来编译JavaScript或Typescript,就必须通过添加来显式定义它<代码>{“\\。[jt] sx?$”:“babel-jest”}转换属性。看到<一种href="https://github.com/facebook/jest/tree/master/packages/babel-jest" target="_blank" rel="noopener noreferrer">Babel-jest插件

transformIgnorePatterns[数组]<一种类="hash-link" href="#transformignorepatterns-arraystring" title="#">#

默认值:<代码>[" / node_modules”、“\ \ .pnp \\.[^\\\/]+$"]

转换前与所有源文件路径匹配的regexp模式字符串数组。如果测试路径与任何模式匹配,则不会对其进行转换。

这些模式字符串与完整路径匹配。使用<代码>包含项目根目录路径的字符串令牌,以防止它意外地忽略不同环境中可能有不同根目录的所有文件。

例子:<代码>[“ / bower_components /”,“ / node_modules /”]]

有时候(尤其是在React Native或TypeScript项目中),第三方模块会以未transpiled的形式发布。因为里面的所有文件<代码>Node_modules, Jest将无法理解这些模块中的代码,从而导致语法错误。要克服这个问题,你可以使用<代码>transformIgnorePatterns允许丢失这些模块。你会发现这个用例的一个很好的例子<一种href="/es-ES/docs/tutorial-react-native">反应本地指南

unmockedModulePathPatterns[数组]<一种类="hash-link" href="#unmockedmodulepathpatterns-arraystring" title="#">#

默认值:<代码>[]

在模块加载程序之前与所有模块相匹配的regexp模式字符串数组将自动返回它们的模拟。如果模块的路径与此列表中的任何模式匹配,则不会被模块加载器自动模拟。

这对某些常用的“实用程序”模块很有用,这些模块几乎始终始终用作实现细节(如下划线/ lo-dash等)。通常是保持此列表尽可能小的最佳做法,并且始终使用显式<代码>笑话。模拟()/<代码>笑话。unmock ()调用单独的测试。显式的每个测试设置对于测试的其他读者来说更容易推断测试将要运行的环境。

可以通过显式调用在各个测试中重写此设置<代码>笑话。模拟()在测试文件的顶部。

详细的(布尔)<一种类="hash-link" href="#verbose-boolean" title="#">#

默认值:<代码>假

指示是否应该在运行期间报告每个单独的测试。所有的错误在执行后仍然会显示在底部。注意,如果只有一个测试文件正在运行,它将默认为<代码>真正的

WatchpathignorePatterns.[数组]<一种类="hash-link" href="#watchpathignorepatterns-arraystring" title="#">#

默认值:<代码>[]

在重新运行Watch模式下的测试之前与所有源文件路径匹配的一系列Regexp模式。如果文件路径与任何模式匹配,则更新时,它将不会触发重新运行测试。

这些模式匹配整个路径。使用<代码>包含项目根目录路径的字符串令牌,以防止它意外地忽略不同环境中可能有不同根目录的所有文件。例子:<代码>[" < rootDir > / node_modules /”)

即使在此指定了任何内容,监视仪也会忽略对任何隐藏文件和目录的更改,即,以点()开头的文件和文件夹(<代码>.).

watchPlugins[一种rray]<一种类="hash-link" href="#watchplugins-arraystring--string-object" title="#">#

默认值:<代码>[]

这个选项允许你使用自定义的监视插件。阅读更多关于手表插件的信息<一种href="/es-ES/docs/watch-plugins">这里

观察插件的例子包括:

中的值<代码>watchPlugins属性值可以省略<代码>jest-watch-包名的前缀。

守望(布尔)<一种类="hash-link" href="#watchman-boolean" title="#">#

默认值:<代码>真正的

是否使用<一种href="https://facebook.github.io/watchman/" target="_blank" rel="noopener noreferrer">守望对文件爬行。

//(字符串)<一种类="hash-link" href="#-string" title="#">#

没有默认的

这个选项允许注释<代码>package.json.。.将注释文本包含为此密钥的值<代码>package.json.。

例子:

{
“名称” “我的项目”
“笑话” {
“/ /” “评论”
“详细” 真正的
}
}