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

Resolucao德能预防

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

Testes estão falhando e você não sabe por que

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 . conf [ 这里的任何其他论点 ]
或在Windows上
node --inspect-brk ./node_modules/jest/bin/jest.js --RuninBand [ 这里的任何其他论点 ]

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

要调试谷歌Chrome(或任何基于chromium的浏览器),打开你的浏览器并转到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在同一个进程中运行测试,而不是为单个测试生成进程。正常的笑话平行execução de testes através de processos, mas é difícil de depurar vários processos ao meso tempo。

depuraçãono vs代码

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

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

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

emseguida, anexe depurador do VS Code usando a configuraçãolaunch.jsonSEGUIR:

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

Para iniciar automaticamente e anexar a um processo executando os seus testes, use a 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-App登录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”
}
]
}

Mais informações sobre 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-AppFacebook, na configuração对caminho paro pacote有什么特别的看法吗反应脚本没有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.”

我的信仰,也是é causado por implementações与信仰的冲突。例如,考虑用您自己的promise实现替换全局promise实现全球的。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 mesa "thread" usando- runinband.

#使用Jest CLI
笑话——runInBand
#使用yarn测试(例如使用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.
#使用yarn测试(例如使用create-react-app)
测试 --maxworkers. = 4.

coveragePathIgnorePatternsParecenãoternenhum efeito。

证书-se de que você não está usando o plugin debabel-plugin-Istambul。Jest包裹了伊斯坦布尔,因此也告诉了伊斯坦布尔什么文件可以用覆盖收集工具。当使用babel-plugin-istanbul,Babel处理的每个文件都有覆盖收集代码,因此它不会被忽略coveragePathIgnorePatterns

定义测试

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

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

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

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

笔记:这意味着您使用时test.each.不能在一个摘要/Beforeall.

即使sem resolucao吗?

咨询A.Ajuda.