跳转到主要内容
版本:26.x.

配置Jest.

jest的配置可以在其中定义<代码>package.json.。项目的文件,或通过a<代码>jest.config.js那或<代码>jest.config.ts.。存档或通过<代码>——配置<小路/to / file.js | ts | cjs | mjs | json>选择。如果你想用你的<代码>package.json.。来存储Jest的配置<代码>“笑话”key应该在顶层使用,这样Jest就会知道如何找到你的设置:

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

或通过JavaScript:

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

或者通过TypeScript(如果<代码>TS节点安装):

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

请记住,生成的配置必须是json可序列化的。

当使用<代码>——配置选项,JSON文件不得包含“JEST”键:

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

选项<一种类="hash-link" href="#options" title="#">#

这些选项允许您控制Jest的行为<代码>package.json.。文件。默认情况下,Jest哲学是忙碌的,但有时你只需要更多的配置电力。

默认值<一种类="hash-link" href="#defaults" title="#">#

如果需要,您可以检索Jest的默认选项以展开它们:

// jest.config.js.
const { 默认值 } = 要求 “jest-config” ;
模块 出口 = {
/ /……
moduleFileExtensions [ 默认值 moduleFileExtensions 'ts' “tsx” ]
/ /……
} ;

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

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

默认值:<代码>假

该选项告诉Jest测试中导入的所有模块都应该被自动嘲弄。测试中使用的所有模块都将有一个替代实现,保持API表面。

例子:

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

注意:当你有一个手动模拟时,节点模块会被自动模拟(例如:<代码>__mocks __ / lodash.js)。更多信息<一种href="/zh-Hans/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将缓存数据存储在磁盘上的位置。

清晰度(布尔)<一种类="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模式指示应该为其收集覆盖率信息的一组文件。如果一个文件匹配指定的glob模式,那么将为它收集覆盖率信息,即使这个文件不存在测试,并且在测试套件中从来不需要它。

例子:

{
“collectcoveragefrom” [
“* * / * {js, jsx}”。
”!* * / node_modules / * *”
”!* * /供应商/ * *”
]
}

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

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

亚搏取款帮助:如果您看到覆盖范围,例如...
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =覆盖率总结= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
语句:Unknown% (0/0)
分支机构:未知%(0/0)
函数:Unknown% (0/0)
行:未知% (0/0)
================================================================================.
jest:找不到全局的覆盖数据。

最有可能的是您的Glob模式与任何文件都不匹配。参考<一种href="https://github.com/jonschlinkert/micromatch" target="_blank" rel="noopener noreferrer">micromatch.文章以确保您的globs是兼容的。

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

默认值:<代码>不明确的

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

coveragepatepathorepatterns.(数组<字符串>)<一种类="hash-link" href="#coveragepathignorepatterns-arraystring" title="#">#

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

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

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

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

指示应该使用哪个提供程序来检测代码的覆盖率。允许的值是<代码>巴别塔(默认)或<代码>v8

注意,使用<代码>v8被认为是实验性的。这使用V8的内置代码覆盖而不是基于Babel的内置码。它不太经过测试,并且在最后几个节点释放中也有所改善。使用最新版本的节点(在本写作时的v14)将产生更好的结果。

coverageReporters[数组]<一种类="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 reporter。例如:

[ “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">一团,以及作为目录或文件路径。如果没有满足阈值,则Jest将失败。指定为正数的阈值被认为是所需的最小百分比。指定为负数的阈值表示允许的未覆盖实体的最大数量。

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

{
“笑话” {
“cuckagehethreshold” {
“全球” {
“分支” 80
“职能” 80
“线” 80
“声明” -10年
}
}
}
}

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

例如,具有以下配置:

{
“笑话” {
“cuckagehethreshold” {
“全球” {
“分支” 50
“职能” 50
“线” 50
“声明” 50
}
”。/ src /组件/” {
“分支” 40
“声明” 40
}
”。/ src /还原剂/ * * / * . js” {
“声明” 90
}
”。/ src / api / very-important-module.js” {
“分支” One hundred.
“职能” One hundred.
“线” One hundred.
“声明” One hundred.
}
}
}
}

如果:

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

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

默认值:<代码>不明确的

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

const 加密 = 要求 “密码” ;
const fs = 要求 “fs” ;
模块 出口 = {
提取 代码 文件路径 defaultExtract. {
const deps = defaultExtract. 代码 文件路径 ;
//扫描文件并在' deps '(这是一个' Set ')中添加依赖项
返回 deps ;
}
getCacheKey {
返回 加密
createHash md5的
更新 fs readfilesync. __filename
消化 十六进制的 ;
}
} ;

这<代码>提取函数应该返回易于迭代(<代码>数组那<代码>放等)与代码中的依赖关系。

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

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

默认值:<代码>不明确的

允许在运行时与测试一起打印标签。这在多项目存储库中变得更加有用,其中可能有许多关于CEMET配置文件。这在视觉上讲述了测试所属的项目。以下是示例有效值。

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

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

作为辅助选项,具有属性的对象<代码>名称和<代码>颜色可以通过。这允许定制DisplayName的背景颜色的配置。<代码>显示名称当值是字符串时默认为白色。Jest利用<一种href="https://github.com/chalk/chalk" target="_blank" rel="noopener noreferrer">粉笔提供颜色。因此,Chalk支持的颜色的所有有效选项也由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内部定义的额外属性以进行更快的查找。

例如,如果您的测试调用<代码>数学通常,您可以通过设置传递它<代码>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,因此不能用于指定全局函数。为此,你应该使用<代码>设置文件s.

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="#">#

默认值:<代码>不明确的

的行为将被用于配置<代码>开玩笑-Haste-Map,Jest的内部文件爬网程序/缓存系统。支持以下选项:

类型 HasteConfig = {
//是否使用SHA-1散列文件。
computeSha1 布尔基 ;
//使用作为默认的平台,例如,'ios'。
defaultPlatform 细绳 | ;
//赶快定制实施的路径。
hasteimplmodulepath. 细绳 ;
//所有目标平台,例如['ios', 'android']。
平台 数组 < 细绳 > ;
//是否抛出错误模块碰撞。
throwOnModuleCollision 布尔基 ;
} ;

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

默认值:<代码>真正的

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

进口 { 预计 笑话 测试 } '@ jest / globals' ;
笑话 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值,如果您想使用文件路径。

此外,还可以使用编号后向引用替换捕获的regex组。

例子:

{
“moduleNameMapper” {
“^图像![A-ZA-Z0-9 $ _-] + $” “GlobalImageStub”
“^ [./ a-za-z0-9 $ _-] +。PNG $” /relativeImagestub.js”
“module_name _(。*)” /substited_module_$1.js”
“资产/(. *)” [
“< rootDir > /图片/ 1美元”
“< rootDir > /照片/ 1美元”
“< rootDir > /菜谱/ 1美元”
]
}
}

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

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

modulepathignorepatterns.(数组<字符串>)<一种类="hash-link" href="#modulepathignorepatterns-arraystring" title="#">#

默认值:<代码>[]

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

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

modulePaths(数组<字符串>)<一种类="hash-link" href="#modulepaths-arraystring" title="#">#

默认值:<代码>[]

设置的替代API<代码>Node_path.env.变量,<代码>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="#">#

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

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

默认值:<代码>不明确的

用作Jest配置基础的预置。预置应该指向一个npm模块<代码>jest-preset.json或<代码>jest-preset.js.。root文件。

例如,这个预设<代码>喷火-B.一种r / 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">漂亮节点模块用于更新内联快照。

项目(数组<字符串| ProjectConfig >)<一种类="hash-link" href="#projects-arraystring--projectconfig" title="#">#

默认值:<代码>不明确的

当。。。的时候<代码>项目配置提供了一系列路径或直接模式,Jest将同时运行所有指定项目中的测试。这对于MONOREPOS或同时在多个项目上工作时非常棒。

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

此示例配置将在根目录中运行jest以及在示例目录中的每个文件夹中。您可以在同一JEST实例中拥有无限量的项目。

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

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

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

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

默认值:<代码>不明确的

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

如果指定了自定义报告器,则将覆盖默认的Jest报告器。为了留住违约记者,<代码>默认的可以作为模块名传递。

这将覆盖默认记者:

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

除了Jest提供的默认报告器外,还将使用自定义报告器:

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

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

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

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

记者:例子

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

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

mycustomreporter. {
/ /……
getLasterror. {
如果 _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的假实现被删除,但不能恢复它们的初始实现。

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

默认值:<代码>假

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

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

默认值:<代码>不明确的

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

{
“基于” 细绳
“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">“浏览器”,可以使用以下配置:

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

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

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

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

默认值:<代码>假

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

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

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

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

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

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

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

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

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

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

注意:虽然<代码>rootDir大多数用作要重新使用的令牌以其他配置选项,<代码>根被Jest内部用来定位测试文件和源文件。在搜索来自的Manual Mocks的手动模型时,这也适用<代码>Node_modules(<代码>__mocks__会需要住在其中吗<代码>根)。

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

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

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

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

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

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

异步 runTests
测试 数组 < 测试 >
看护人 testwatcher.
onStart OnTestStart
onResult OnTestSuccess
onFailure ontestfailure.
选项 testRunnerOptions.
承诺 < 无效 >

如果您需要将Test-Runner限制为仅在串行运行而不是并行执行您的班级时应该具有属性<代码>isSerial被设定为<代码>真正的

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

默认值:<代码>[]

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

这也值得注意的是<代码>设置文件s.将执行setupFilesAfterEnv

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

默认值:<代码>[]

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

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

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

注意:<代码>setupTestFrameworkScriptFile赞成<代码>setupFilesAfterEnv

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

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

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

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

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

默认值:<代码>5.。

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

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

默认值:<代码>不明确的

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

示例Snapshot Resolver模块:

模块 出口 = {
//从测试中解析为快照路径
resolveSnapshotPath 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="/zh-Hans/docs/tutorial-react-native">快照测试教程为更多的信息。

示例序列化器模块:

// my-serializer-module
模块 出口 = {
连载 瓦尔 配置 缩进 深度 参考文献 打印机 {
返回 “相当foo:” + 打印机 瓦尔 喷火 ;
}
测试 瓦尔 {
返回 瓦尔 && 瓦尔 hasOwnProperty 'foo' ;
}
} ;

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

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

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

最后的测试如下:

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

呈现快照:

漂亮的喷火 目的 {
“x” 1
“y” 2
}

要使依赖项显式而不是隐式,可以调用<一种href="/zh-Hans/docs/expect">期望.Addsnapshotserializer为单个测试文件添加模块,而不是将其路径添加到<代码>snapshotSerializers开玩笑地配置。

可以找到更多关于Serializers 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。如果您正在构建节点服务,则可以使用<代码>节点选项,以使用类似节点的环境代替。

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

/ * *
* @jest-environment jsdom
* /
测试 在这个测试文件中使用jsdom => {
const 元素 = 文档 牧马赛 'div' ;
预计 元素 不是 toBeNull ;
} ;

您可以创建自己的模块,用于设置测试环境。模块必须导出一个类<代码>设置那<代码>拆除和<代码>runScript方法。您还可以通过将此模块将变量传递给测试套件<代码>this.global对象 - 这将使它们作为全局变量的测试套件可用。

该类可以可选地暴露异步<代码>邀请赛方法绑定到触发的事件<一种href="https://github.com/facebook/jest/tree/master/packages/jest-circus" target="_blank" rel="noopener noreferrer">jest-circus。一般,<代码>jest-circus测试赛跑者将暂停,直到返回的承诺<代码>邀请赛得到满足,除了下一个事件:<代码>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类型)。这是由后向兼容性的原因引起的<代码>的过程。(“unhandledRejection”,回调)签名,但这通常不应该是大多数用例的问题。

测试文件中的任何DocBlock Pragmas都将传递给环境构造函数,可用于每个测试配置。如果Pragma没有值,则它将存在于对象中,其值设置为空字符串。如果不存在Pragma,则它将不存在于对象中。

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

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

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

例子:

/ / my-custom-environment
const 点亮 = 要求 'jest-envionion-node' ;
海度环境 扩展 点亮 {
构造函数 配置 上下文 {
超级 配置 上下文 ;
testpath. = 上下文 testpath. ;
docblockpragmas. = 上下文 docblockpragmas. ;
}
异步 设置 {
等待 超级 设置 ;
等待 SomesetaSks. testpath. ;
全球 someGlobalObject = createglobalobject. ;
//如果docblock包含@my-custom-pragma my-pragma-value将触发
如果 docblockpragmas. [ “my-custom-pragma” ] = = = '我的pragma-value' {
/ /……
}
}
异步 拆除 {
全球 someGlobalObject = destroyGlobalObject ;
等待 someTeardownTasks ;
等待 超级 拆除 ;
}
runScript 脚本 {
返回 超级 runScript 脚本 ;
}
异步 邀请赛 事件 状态 {
如果 事件 名称 = = = “test_start” {
/ /……
}
}
}
模块 出口 = 海度环境 ;
/ / my-test-suite
/ * *
* @ jest-envionion ./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.)。它还将找到调用的文件<代码>。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模式字符串。如果测试路径与任何模式匹配,则会跳过。

这些模式字符串与完整路径匹配。使用<代码>字符串标记,以包含到项目根目录的路径,以防止它意外地忽略不同环境中可能有不同根目录的所有文件。例子:<代码>[“ / build /”,“ / 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.)。它还将找到调用的文件<代码>。js或<代码>spec.js.。。也可以看看<一种href="#testmatch-arraystring">试验(数组<字符串>),但请注意,您无法指定两个选项。

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

├──__tests__
│└──component.spec.js # 测试
│└──任何东西 # 测试
├──package.json #不测试
├──foo.test.js # 测试
├──BAR.SPEC.JSX. # 测试
└──Component.js. #不测试

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

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

默认值:<代码>不明确的

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

{
“成功” 布尔基
“开始时间” 时代
“numtotaltestsuites” 数字
“numPassedTestSuites” 数字
“numFailedTestSuites” 数字
“numruntimeerraettessuites” 数字
“numTotalTests” 数字
“numPassedTests” 数字
“numfailedtests” 数字
“numPendingTests” 数字
“numtodotests” 数字
“openHandles” 阵列误差< >
“检测结果” [ {
“numFailingTests” 数字
“numPassingTests” 数字
“numPendingTests” 数字
“检测结果” [ {
“标题” 字符串(消息块)
“状态” “失败” | “等待” | “通过”
“ancestorTitles” [ 字符串(描述块中的消息) ]
“failureMessages” [ 细绳 ]
“numPassingAsserts” 数字
“位置” {
“列” 数字
“线” 数字
}
}
]
“perfStats” {
“开始” 时代
“结尾” 时代
}
“testFilePath” 测试文件的绝对路径
“覆盖范围” { }
}
]
}

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

默认值:<代码>jasmine2

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

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

函数 testRunner
globalConfig GlobalConfig
配置 ProjectConfig.
环境 环境
运行 运行
testpath. 细绳
承诺 < 测试结果 > ;

在我们的默认函数中可以找到这样一个函数的例子<一种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的默认值。<代码>排序可以选择返回承诺。

例子:

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

/ / testSequencer.js
const 定序器 = 要求 '@ jest / test-sequencer' 默认的 ;
custom sequencer. 扩展 定序器 {
排序 测试 {
//测试结构信息
/ / https://github.com/facebook/jest/blob/6b8b1404a1d9254e7d5d90a8934087a9c9899dab/packages/jest-runner/src/types.ts L17-L21
const = 数组 测试 ;
返回 排序 testa. testb. => testa. 小路 > testb. 小路 1 - 1 ;
}
}
模块 出口 = custom sequencer. ;

像这样在你的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="/zh-Hans/docs/webpack">webpack教程

这种编译器的示例包括:

您可以将配置传递给变换器<代码>{文件Pattern: [path-to-transformer,{选项}]}例如,要为非默认行为配置Babel-jest,<代码>{“\\。js $”:['babel-jest',{rootmode:“向上”}“}

注意:除非文件已更改,否则每个文件仅运行一次变换器。在变形金刚的开发过程中,它可以使用Jest<代码>-NNo-cache.频繁<一种href="/zh-Hans/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插件

reganceIgnorePatterns.(数组<字符串>)<一种类="hash-link" href="#transformignorepatterns-arraystring" title="#">#

默认值:<代码>[“/ node_modules /”,“\\。pnp \\。[^ \\\ /] + $”]

在转换之前与所有源文件路径匹配的一系列Regexp模式字符串。如果测试路径与任何模式匹配,则不会转换。

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

例子:<代码>[" < rootDir > / bower_components”、“< rootDir > / node_modules /”)

有时它会发生(尤其是反应本机或打字项目),第三方模块被公布为未经批读。因为里面的所有文件<代码>Node_modules默认情况下没有转换,Jest将不理解这些模块中的代码,从而导致语法错误。要克服这一点,你可以使用<代码>reganceIgnorePatterns.允许丢失这些模块。你会发现这个用例的一个很好的例子<一种href="/zh-Hans/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模式。如果文件路径与任何模式匹配,则更新时,它将不会触发重新运行测试。

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

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

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

默认值:<代码>[]

此选项允许您使用自定义手表插件。阅读更多关于手表插件<一种href="/zh-Hans/docs/watch-plugins">这里

手表插件的例子包括:

注:参数中的值<代码>守望者属性值可以省略<代码>笑话-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.。

例子:

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