跳到主要内容
版本:25.x.

Resolucao德能预防

HÃ,ilgo deu Errado?使用Este Guia Para Resolver rescumpas com Jest。

Testes estão falhando e você não为您服务

Tente Usar OSuporteàAppuração嵌造没有节点。注意:这将仅在Node.js 8+中使用。

Coloque乌玛instrucao调试器;EM qualcure um dos seus testes em seguida,no diretsrio do seu projeto,执行:

node——inspect-brk node_modules/.bin/jest——runInBand [ 这里的任何其他论点 ]
或在Windows上
node --inspect-brk ./node_modules/jest/bin/jest.js --RuninBand [ 这里的任何其他论点 ]

这将在外部调试器可以连接到的节点进程中运行jest。请注意,此过程将暂停,直到调试器已连接到它。

要调试谷歌Chrome(或任何基于Chrome的浏览器),打开你的浏览器,去Chrome://检查然后点击“Open Dedicated DevTools for Node”,这将给你一个可用节点实例列表,你可以连接到。单击终端中显示的地址(通常类似于localhost:9229)运行上述命令后,您将能够使用Chrome的DevTools调试Jest。

将显示Chrome开发人员工具,并且将在JEST CLI脚本的第一行设置断点(这是为您提供时间打开开发人员工具并防止在您有时间之前执行的时间)。。clique nobotãoque se parece com ub ob ots“play”no lado superiored direito da tela para continuar asecução。Quando Jest Executa o Teste QueContémainstrução调试器,一个execuçãofaráuma pausa evocêpode eecopo atecopo at manial e a pilha de chamada。

注意:- runinband.cli选项确保Jest在相同的进程中运行测试,而不是为单个测试生成进程。Normalmente Jest paraleliza execução de testes através de processos, mas é difícil de depurar vários processos ao mesmo tempo。

depuraçãono vs代码

有多种方法可以调试JEST测试Visual Studio代码的内置调试器

Para Anexar o Depurador Embutido,执行操作系统睾丸,Como Foi Mencionado Anteriormente:

node——inspect-brk node_modules/.bin/jest——runInBand [ 这里的任何其他论点 ]
或在Windows上
node --inspect-brk ./node_modules/jest/bin/jest.js --RuninBand [ 这里的任何其他论点 ]

Em seguida,一个exe depurador做VS Code usando configuraçãolaunch.jsonSEGUIR:

{
“版本” “0.2.0”
“配置” [
{
“类型” “节点”
“要求” “附加”
“名称” “附”
“港口” 9229.
}
]
}

使用seguinte (seguinte) configuração:

{
“版本” “0.2.0”
“配置” [
{
“名称” “调试Jest测试”
“类型” “节点”
“要求” “发射”
“runtimeargs” [
”——inspect-brk”
“$ {workspaceroot} /node_modules/.bin/jest”
”——runInBand”
]
“安慰” “integratedTerminal”
“internalconsoleoptions” “nelepen”
“港口” 9229.
}
]
}

或以下为Windows:

{
“版本” “0.2.0”
“配置” [
{
“名称” “调试Jest测试”
“类型” “节点”
“要求” “发射”
“runtimeargs” [
”——inspect-brk”
" $ {workspaceRoot} / node_modules /开玩笑/ bin / jest.js”
”——runInBand”
]
“安慰” “integratedTerminal”
“internalconsoleoptions” “nelepen”
“港口” 9229.
}
]
}

sevocêestiver usando oCreate-React-Appdo Facebook, você pode depurar seus testes Jesta com a seguinte configuração:

{
“版本” “0.2.0”
“配置” [
{
“名称” “调试CRA测试”
“类型” “节点”
“要求” “发射”
“runtimeExecutable” " $ {workspaceRoot} / node_modules。bin / react-scripts”
“参数” [ “测试” ”——runInBand” “--no-cache” ”- - - env = jsdom” ]
“CWD” “$ {workspaceroot}”
“协议” “检查员”
“安慰” “integratedTerminal”
“internalconsoleoptions” “nelepen”
}
]
}

maiis informações清醒depuração做节点podem ser矛盾Aqui.

depuração没有网站

一个Maneira MaisFácildepurar睾丸Testes Jest NoWebStorm.éusondo aconfiguração de executar/depurar Jest。Vai Iniciar OS测试E自动名称Anexar o Depurador。

没有菜单跑步webstorm selecione编辑配置...。em seguida,clique em+e selecione.笑话。Opcionalmente,Cefecifique o Arquivo deConfiguraçãojest,OpçõesAdicionaiseVariáveisdeAmaliente。Salve aconfiguração,Coloque Pontos deInterpçãonocódigoe,em seguida,Clique noíconeverde depurar parainicar adepuração。

sevocêestiver usando oCreate-React-App脸谱网是configuração是什么意思反应脚本没有Campo Pacote Jest E Adicionar——env = jsdomPara O Campo deOpçõesdejest。

其它缓存

变换脚本已更改或BABEL已更新,并且Jest无法识别更改?

Tente Novantee Com.——no - cache。jest armazena em cache os arquivos demódulo变换器帕拉acelerar aexecuçãode testes。如果您使用的是您自己的自定义变压器,请考虑添加agetcachekey.功能:getcachekey在继电器中

PROMESSASNãoStrosvidas.

Se UmaPromessaNãoéStroseVidade Forma Alguma,Esse Erro Pode SerLançado:

- 错误:超时 - 在内部不会调用异步回调 超时 规定jasmine.DEFAULT_TIMEOUT_INTERVAL.”

Mais comumente, isso é causado por implementações conflitantes de Promessa。例如,考虑用您自己的承诺实现替换全局承诺实现全球的。promise = jest.requireachtual('promise');和/或将使用的88个库巩固到一个单个。

如果您的测试长时间运行,您可能需要考虑通过调用来增加超时时间jest.settimeout.

笑话 索取 10000 ; // 10 segundos de超时

问题Com Watchman.

尝试跑步Jest- 没有守望人或设置守望者配置选项错误的

Também咨询看守人的问题多了

TestesSãoReellamenteLentos没有Docker E / Ou Servidor deIntegraçãoctínua(CI,连续整合)。

虽然Jest在现代多核计算机上具有快速SSD的大多数时间非常快,但在某些设置中可能会缓慢为我们的用户发现

基于发现,缓解这个问题并将速度提高50%的一种方法是按顺序运行测试。

Para isso, você pode executar testes na mesma "thread" usando- runinband.

#使用Jest CLI
笑话——runInBand
#使用纱线测试(例如create-react-app)
测试 - runinband.

在持续集成服务器(如Travis-CI)上加快测试执行时间的另一种替代方法是将最大工作器池设置为~4.。Especificamente没有Travis-CI,ISTO Pode Reduzir O Tempo deExecuçãodeTestePela Metade。NOTA:o Plano格拉蒂托de travis cidisponívelpara projetos decódigoaberto cantui apenas 2núcleosde cpu。

#使用Jest CLI
笑话——maxWorkers = 4.
#使用纱线测试(例如create-react-app)
测试 --maxworkers. = 4.

coveragePathIgnorePatternsParecenãoternenhum efeito。

该证书为você não está与其他证书相同babel-plugin-Istambul。Jest包装了伊斯坦布尔,因此也告诉伊斯坦布尔哪些文件的工具与报道收集。当使用babel-plugin-istanbul,Babel处理的每个文件都有覆盖收集代码,因此它不会被忽略coveragePathIgnorePatterns

定义测试

必须同步定义测试,以便能够收集测试。

作为一个例子来展示为什么这是这种情况,想象一下我们写了一个如此:

//不这样做它不起作用
索取 = > {
“通过” = > 预计 1 成为 1 ;
} 0. ;

当Jest运行您的测试来收集测试s将找不到任何,因为我们已在事件循环的下一个刻度上设置定义以异步发生。

笔记:这意味着您使用时test.each.类中不能异步设置表摘要/Beforeall.

即使sem resolucao吗?

咨询A.ajuda