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

配置开玩笑

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

{
“名称” : “我的项目” ,
“开玩笑” : {
“详细” : 真的
}
}

或通过JavaScript:

/ / jest.config.js
/ /同步对象
模块 出口 = {
verb : 真的 ,
} ;
//或异步函数
模块 出口 = 异步 ( ) = > {
返回 {
verb : 真的 ,
} ;
} ;

或者通过TypeScript(如果<代码>ts-node安装):

// jest.config.ts.
进口 类型 { 配置 } “@jest /类型” ;
/ /同步对象
常量 配置 : 配置 InitialOptions = {
verb : 真的 ,
} ;
出口 默认的 配置 ;
//或异步函数
出口 默认的 异步 ( ) : 承诺 < 配置 InitialOptions > = > {
返回 {
verb : 真的 ,
} ;
} ;

请记住,生成的配置必须是JSON-Serializable。

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

{
“保释” : 1 ,
“详细” : 真的
}

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

这些选项让您控制jest在您的行为<代码>package.json文件。Jest的理念是在默认情况下工作得很好,但有时您只是需要更多的配置功能。

违约<一个类="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
出口 默认的 {
授权 : ( ) = > {
返回 “令牌” ;
} ,
isa授权 : 秘密 = > 秘密 = = = “向导” ,
} ;
/ / __tests__ / automocking.test.js
进口 利用者 '../utils' ;
测试 ( '如果使用自动嘲笑' , ( ) = > {
// utils的公共方法现在是模拟函数
预计 ( 利用者 授权 模拟 ) toBeTruthy ( ) ;
预计 ( 利用者 isa授权 模拟 ) toBeTruthy ( ) ;
//你可以用你自己的实现提供它们
//或通过预期的返回值
利用者 授权 mockReturnValue ( “mocked_token” ) ;
利用者 isa授权 mockReturnValue ( 真的 ) ;
预计 ( 利用者 授权 ( ) ) 托比 ( “mocked_token” ) ;
预计 ( 利用者 isa授权 ( “not_wizard” ) ) toBeTruthy ( ) ;
} ) ;

注意:当你有一个手动模拟时,节点模块会被自动模拟(例如:<代码>__mocks__/lodash.js)。更多信息<一个href="/pt-BR/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<代码>——覆盖

亚搏取款帮助:如果您看到覆盖率输出,如…
=============================== 报道总结 ===============================
语句:Unknown% (0/0)
分支:未知% (0/0)
功能:未知%(0/0)
行:未知% (0/0)
================================================================================
没有找到全局的覆盖数据。

您的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(字符串,选项]><一个类="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。为什么exemplo:

( “json” , ( “lcov” , { “projectRoot” : “. . / . . /” } ] ]

有关选项对象形状的其他信息,您可以参考<代码>CoverageReporterWithOptions输入<一个href="https://github.com/facebook/jest/tree/master/packages/jest-types/src/Config.ts" target="_blank" rel="noopener noreferrer">类型定义

coverageThreshold(对象)<一个类="hash-link" href="#coveragethreshold-object" title="#">#

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

这将用于为覆盖结果配置最小阈值强制。阈值可以指定为<代码>全球,作为一个<一个href="https://github.com/isaacs/node-glob" target="_blank" rel="noopener noreferrer">一团,并作为目录或文件路径。如果不满足阈值,jest将失败。指定为正数的阈值被认为是所需的最小百分比。以负数指定的阈值表示允许的未公开实体的最大数量。

例如,对于以下配置,如果分支、行和函数覆盖率小于80%,或者超过10条未覆盖的语句,则jest将失败:

{
“开玩笑” : {
“coverageThreshold” : {
“全球的” : {
“分支” : 80 ,
“功能” : 80 ,
“行” : 80 ,
“声明” : -10年
}
}
}
}

如果在旁边指定了globs或路径<代码>全球,从整体覆盖中减去匹配路径的覆盖数据,独立应用阈值。globs的阈值应用于所有匹配glob的文件。如果没有找到path指定的文件,将返回一个错误。

例如,配置如下:

{
“开玩笑” : {
“coverageThreshold” : {
“全球的” : {
“分支” : 50 ,
“功能” : 50 ,
“行” : 50 ,
“声明” : 50
} ,
”。/ src /组件/” : {
“分支” : 40 ,
“声明” : 40
} ,
”。/ src /还原剂/ * * / * . js” : {
“声明” : 90
} ,
“./src/api/very-important-module.js” : {
“分支” : 100. ,
“功能” : 100. ,
“行” : 100. ,
“声明” : 100.
}
}
}
}

如果:

  • 的<代码>/src /组件目录的分支或声明覆盖范围小于40%。
  • 其中一个文件与<代码>。/src /还原剂/ * * / * . jsGlob的语句覆盖率不到90%。
  • 的<代码>。/src / api / 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生成缓存键的函数以确定逻辑是否已更改,并且应丢弃依赖它的任何缓存伪像。

displayName(字符串,对象]<一个类="hash-link" href="#displayname-string-object" title="#">#

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

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

模块 出口 = {
displayName : “客户” ,
} ;

或者

模块 出口 = {
displayName : {
的名字 : “客户” ,
颜色 : “蓝” ,
} ,
} ;

作为次要选项,具有属性的对象<代码>的名字和<代码>颜色可以通过。这允许对displayName的背景颜色进行自定义配置。<代码>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="#">#

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

测试文件运行在<一个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可序列化的,因此不能用于指定全局函数。为此,您应该使用<代码>setupFiles

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

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

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

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

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

注意:当代码转换应用到链接的安装文件时,Jest也会这样做转换任何代码<代码>node_modules。这是由于需要加载实际的变压器(例如。<代码>巴别塔或者<代码>打印稿)进行转型。

例子:

/ / setup.js
模块 出口 = 异步 ( ) = > {
/ /……
//将引用设置为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 吗? : 布尔 ;
//默认使用的平台,例如:“操作系统”。
defaultPlatform 吗? : 字符串 | 空值 ;
//急速的自定义实现路径。
hasteImplModulePath 吗? : 字符串 ;
//所有目标平台,例如['ios', 'android']。
平台 吗? : 数组 < 字符串 > ;
//是否抛出错误模块碰撞。
throwOnModuleCollision 吗? : 布尔 ;
} ;

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

默认值:<代码>真的

插入Jest的全局变量(<代码>预计,<代码>测试,<代码>描述,<代码>beforeEach等等)进入全球环境。如果你把这个设为<代码>假,您应该从<代码>@jest /全局,如。

进口 { 预计 , 开玩笑 , 测试 } “@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", "node"]

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

我们建议把你项目中最常用的扩展放在左边,所以如果你正在使用TypeScript,你可以考虑把"ts"和/或"tsx"移到数组的开头。

modulenamemapper.(object\>]<一个类="hash-link" href="#modulenamemapper-objectstring-string--arraystring" title="#">#

默认值:<代码>空值

从正则表达式到模块名或模块名数组的映射,允许将资源(如图像或样式)存根到单个模块。

映射到别名的模块在默认情况下是未嘲弄的,无论是否启用了自动封装。

用<代码>要引用的字符串标记<一个href="#rootdir-string">rootDir如果要使用文件路径,则值。

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

例子:

{
“moduleNameMapper” : {
“^形象!(一个-zA-Z0-9$_-]+$" : “GlobalImageStub” ,
" ^[。/ a-zA-Z0-9 $ _ -) + \ \ . png $” : “< rootDir > / RelativeImageStub.js” ,
“module_name_(*)。” : “< rootDir > / substituted_module_ js 1.美元” ,
“资产/(. *)” : (
/图像/ $ 1” ,
“< rootDir > /照片/ 1美元” ,
/ /食谱/ 1美元”
]
}
}

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

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

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

默认值:<代码>(]

匹配所有模块路径的regexp模式字符串数组将被认为对模块加载器是“可见的”。如果一个给定的模块的路径匹配任何一个模式,它就不会匹配<代码>要求()-在测试环境中。

这些模式字符串与完整路径匹配。使用<代码>字符串标记,以包含到项目根目录的路径,以防止它意外地忽略不同环境中可能有不同根目录的所有文件。例子:<代码>(" < 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配置基础的预置。预置应该指向一个npm模块<代码>jest-preset.json或者<代码>jest-preset.js文件在根目录。

例如,这个预设<代码>喷火酒吧/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="#">#

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

当<代码>项目配置提供了一组路径或glob模式,Jest将同时在所有指定项目中运行测试。这对于一个人或者同时从事多个项目的时候是很好的。

{
“项目” : ( “< rootDir >” , / / examples / *” ]
}

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

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

{
“项目” : (
{
“displayName” : “测试”
} ,
{
“displayName” : “皮棉” ,
“跑步者” : “jest-runner-eslint” ,
“testmatch” : ( “< rootDir > / * * / * . js” ]
}
]
}

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

记者(一个rray]<一个类="hash-link" href="#reporters-arraymodulename--modulename-options" title="#">#

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

使用此配置选项将自定义报表添加到Jest。自定义报告器是一个实现类<代码>onRunStart,<代码>onTestStart,<代码>onTestResult,<代码>onRunComplete方法,当任何这些事件发生时将被调用。

如果指定了自定义报告器,则将覆盖默认的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 = 选项 ;
}
onRunComplete ( 上下文 , 结果 ) {
安慰 日志 ( '自定义记者输出:' ) ;
安慰 日志 ( “GlobalConfig:” , _globalConfig ) ;
安慰 日志 ( 的选择: , _options ) ;
}
}
模块 出口 = MyCustomReporter ;
//或导出默认的MyCustomReporter;

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

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-eporters / src / types.ts

resetMocks(布尔]<一个类="hash-link" href="#resetmocks-boolean" title="#">#

默认值:<代码>假

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

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

默认值:<代码>假

默认情况下,每个测试文件都有自己独立的模块注册表。启用<代码>resetModules更进一步,在运行每个单独的测试之前重置模块注册表。这对于为每个测试隔离模块很有用,以便本地模块状态不会在测试之间冲突。这可以通过编程方式实现<一个href="/pt-BR/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.
常量 浏览浏览 = 需要 ( '浏览器 - 解析' ) ;
模块 出口 = 浏览浏览 同步 ;

通过结合<代码>defaultResolver和<代码>packageFilter我们可以实施一个<代码>package.json“预处理器”允许我们更改默认解析器的方式如何解析模块。例如,想象我们想要使用该字段<代码>“模块”如果存在,否则回退<代码>“主要”:

{
“开玩笑” : {
“解析器” : “my-module-resolve”
}
}
/ / my-module-resolve包
模块 出口 = ( 请求 , 选项 ) = > {
//调用defaultResolver,利用它的缓存,错误处理等
返回 选项 defaultResolver ( 请求 , {
选项 ,
//使用packageFilter来处理解析后的包。Json '之前的决议(见https://www.npmjs.com/package/resolve#resolveid-opts-cb)
packageFilter : 包裹 = > {
返回 {
包裹 ,
//在解析包之前改变main的值
主要的 : 包裹 模块 || 包裹 主要的 ,
} ;
} ,
} ) ;
} ;

restoreMocks(布尔]<一个类="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">松材线虫病如果没有<代码>package.json被发现

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

通常,您会希望将其设置为<代码>“src”或者<代码>“自由”,对应于代码在存储库中的存储位置。

注意,使用<代码>' < rootDir >”作为任何其他基于路径的配置中的字符串标记,设置将返回此值。例如,如果你想要<一个href="#setupfiles-array">setupFiles配置项指向<代码>env-setup.js.。文件,您可以将其值设置为<代码>(" < rootDir > / env-setup.js”)

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

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

她为我写了一本关于diretórios的书,我很想和你一起去看电影。

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

注意:虽然<代码>rootDir主要用作在其他配置选项中重用的令牌,<代码>根开玩笑的内部用于定位测试文件和源文件。从中搜索模块的手动模拟时也适用<代码>node_modules(<代码>__mocks__会需要住在其中吗<代码>根)。

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

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

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

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

注意:<代码>赛跑者属性值可以省略<代码>开玩笑-赛跑者-包名称的前缀。

要编写一个测试跑步者,导出一个接受的类<代码>globalConfig在构造函数中,和具有<代码>runTests签名方式:

异步 runTests (
测试 : 数组 < 测试 > ,
观察家 : TestWatcher ,
onStart : OnTestStart ,
onResult : OnTestSuccess ,
onFailure : OnTestFailure ,
选项 : TestRunnerOptions ,
) : 承诺 < 无效 >

如果您需要限制您的测试运行程序只能串行运行而不是并行执行,那么您的类应该具有该属性<代码>Iserial.被设定为<代码>真的

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附带了几个插件<代码>茉莉花通过猴子修补茉莉花API的工作。如果您想为混音添加更多​​的茉莉插件(或者如果您想要一些自定义,项目范围的匹配),则可以在这些模块中执行此操作。

注意:<代码>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在磁盘上存储快照文件的位置。

快照解析器模块示例:

模块 出口 = {
//解析从测试到快照的路径
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="#">#

默认值:<代码>(]

Jest应该用于快照测试的快照序列化器模块的路径列表。

Jest有内置JavaScript类型、HTML元素(Jest 20.0.0+)、ImmutableJS (Jest 20.0.0+)和React元素的默认序列化器。看到<一个href="/pt-BR/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="/pt-BR/docs/expect">expect.addSnapshotSerializer为单个测试文件添加模块,而不是将其路径添加到<代码>snapshotSerializers开玩笑地配置。

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

测试环境(字符串)<一个类="hash-link" href="#testenvironment-string" title="#">#

默认值:<代码>“jsdom”

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

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

/ **
* @jest-environment jsdom
* /
测试 ( 在这个测试文件中使用jsdom , ( ) = > {
常量 元素 = 文档 createElement ( “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类型)。这是由于向后兼容的原因而造成的<代码>的过程。(“unhandledRejection”,回调)签名,但对于大多数用例来说,这通常不是问题。

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

要使用该类作为您的自定义环境,请通过它在项目中的完整路径引用它。例如,如果类存储在<代码>my-custom-environment.js在项目的某个子文件夹中,注释可能是这样的:

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

注意:TestEnvironment是沙箱化的。每个测试套件都将在它们自己的TestEnvironment中触发设置/拆卸。

例子:

/ / my-custom-environment
常量 NodeEnvironment = 需要 ( “jest-environment-node” ) ;
CustomEnvironment 扩展 NodeEnvironment {
构造函数 ( 配置 , 上下文 ) {
超级 ( 配置 , 上下文 ) ;
testPath = 上下文 testPath ;
docblockPragmas = 上下文 docblockPragmas ;
}
异步 设置 ( ) {
等待 超级 设置 ( ) ;
等待 someSetupTasks ( testPath ) ;
全球 一些globalobject. = createGlobalObject ( ) ;
//将触发DocBlock包含@ My-Custom-Pragma My-Pragma-Value
如果 ( docblockPragmas ( “my-custom-pragma” ] = = = “my-pragma-value” ) {
/ /……
}
}
异步 拆卸 ( ) {
全球 一些globalobject. = destroyGlobalobject. ( ) ;
等待 someTeardownTasks ( ) ;
等待 超级 拆卸 ( ) ;
}
runscript. ( 脚本 ) {
返回 超级 runscript. ( 脚本 ) ;
}
异步 handleTestEvent ( 事件 , 状态 ) {
如果 ( 事件 的名字 = = = “test_start” ) {
/ /……
}
}
}
模块 出口 = CustomEnvironment ;
/ / my-test-suite
/ **
* @jest-environment。/ my-custom-environment
* /
一些globalobject. ;
beforeAll ( ( ) = > {
一些globalobject. = 全球 一些globalobject. ;
} ) ;

testEnvironmentOptions(目的]<一个类="hash-link" href="#testenvironmentoptions-object" title="#">#

默认值:<代码>{}

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

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

默认值:<代码>1

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

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

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

(默认值:<代码>(** / __测试__ / ** / *。s?(x)“,”** /?(*。)+(spec |测试)。[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模式字符串数组,在执行测试之前匹配所有测试路径。如果测试路径与任何模式匹配,它将被跳过。

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

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

├──__tests__
│└──component.spec.js #测试
│└──任何东西 #测试
├──package.json #没有测试
├──肃 #测试
├──bar.spec.jsx #测试
└──component.js #没有测试

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

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

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

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

{
“成功” : 布尔 ,
“开始时间” : 时代 ,
“numTotalTestSuites” : 数量 ,
“numPassedTestSuites” : 数量 ,
“numFailedTestSuites” : 数量 ,
“numRuntimeErrorTestSuites” : 数量 ,
“numTotalTests” : 数量 ,
“numPassedTests” : 数量 ,
“numFailedTests” : 数量 ,
“numPendingTests” : 数量 ,
“numTodoTests” : 数量 ,
“OpenHandles” : 数组 ,
“检测结果” : ( {
“numFailingTests” : 数量 ,
“numPassingTests” : 数量 ,
“numPendingTests” : 数量 ,
“检测结果” : ( {
“标题” : 字符串(消息块) ,
“状态” : “失败” | “等待” | “通过” ,
“祖先” : ( 字符串(描述块中的消息) ] ,
“failureMessages” : ( 字符串 ] ,
“numpassingasserts” : 数量 ,
“位置” : {
“列” : 数量 ,
“行” : 数量
}
} ,
] ,
“perfStats” : {
“开始” : 时代 ,
“结束” : 时代
} ,
“testFilePath” : 测试文件的绝对路径 ,
“报道” : { }
} ,
]
}

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

默认值:<代码>jasmine2

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

Test Runner模块必须使用以下签名导出函数:

函数 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/6b8b1404a1d9254e7d5d90a8934087a9c9899dab/packages/jest-runner/src/types.ts L17-L21
常量 = 数组 ( 测试 ) ;
返回 种类 ( ( 外种皮 , ) = > ( 外种皮 路径 > 路径 吗? 1 : - 1 ) ) ;
}
}
模块 出口 = CustomSequencer ;

像这样在你的Jest配置文件中使用它:

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

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

默认值:<代码>5000

速度限制padrão对他们进行测试。

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"}

从正则表达式到转换器路径的地图。变压器是一个模块,为转换源文件提供同步功能。例如,如果您希望能够在Node尚未支持的模块或测试中使用新的语言功能,则可能会插入许多编译器中的一个编译器中的一个,该编译器将来版本的JavaScript到当前。示例:看看<一个href="https://github.com/facebook/jest/blob/master/examples/typescript/package.json" target="_blank" rel="noopener noreferrer">例子/打印稿例子或<一个href="/pt-BR/docs/webpack">webpack教程

这类编译器的例子包括:

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

注意:除非文件发生了变化,否则转换器只能在每个文件中运行一次。在开发转换器期间,使用它运行Jest是很有用的<代码>——no - cache频繁<一个href="/pt-BR/docs/troubleshooting">删除jest的缓存

注意:当添加额外的代码转换器时,这将覆盖默认配置和<代码>b一个bel-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模式字符串数组,在转换之前匹配所有源文件路径。如果测试路径匹配任何模式,它将不会被转换。

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

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

有时候(特别是在React Native或TypeScript项目中)第三方模块被发布为未编译的。因为里面的所有文件<代码>node_modules如果没有进行默认转换,则Jest将无法理解这些模块中的代码,从而导致语法错误。为了克服这一点,你可以使用<代码>transformIgnorePatterns允许编译这样的模块。中有一个很好的用例示例<一个href="/pt-BR/docs/tutorial-react-native">反应本地指南

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

默认值:<代码>(]

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

这是有用的一些常用的'实用'模块,几乎总是作为实现细节几乎所有时间(如下划线/lo-dash等)。通常最好的做法是保持列表尽可能小,并始终使用显式<代码>开玩笑。模拟()/<代码>开玩笑。unmock ()在个别测试中调用。对于测试的其他读者来说,显式的每个测试设置更容易推断出测试将在其中运行的环境。

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

verb(布尔]<一个类="hash-link" href="#verbose-boolean" title="#">#

默认值:<代码>假

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

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

默认值:<代码>(]

在监视模式下重新运行测试之前,对所有源文件路径进行匹配的RegExp模式数组。如果文件路径与任何模式匹配,则更新时将不会触发重新运行测试。

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

即使这里没有指定任何东西,监视器也会忽略对任何隐藏文件和目录的更改,即以点(<代码>。)。

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

默认值:<代码>(]

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

手表插件的例子包括:

注意:值中的值<代码>watchPlugins属性值可以省略<代码>开玩笑-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

例子:

{
“名称” : “我的项目” ,
“开玩笑” : {
“/ /” : “评论” ,
“详细” : 真的
}
}