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

トラブルシューティング

おやおや,うまくいきませんか?jestについてについての问题ををするのにこのガイドを利用下载。

理事会は分类ないがテストがする

节点に组み込まれたデバッグサポート使使使てててください。node.js8以降のみ动作します。

调试器;宣言をテストの任意の箇所记述し,プロジェクトのディレクトリで以以コマンド実実行して下载下载。

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

このコマンドでjestは外部からのデバッガ接続できる状态の节点プロセス上で実行さますはデバッガがされるまでする

Google Chrome(もしくは铬ベースのブラウザ)でデバッグするには,ブラウザを开开て,Chrome://检查にアクセスし,“节点的开放专用Devtools”を开头ます。そうすれば接続できるアクティブなインスタンスの一切が表示れますますます。上帝のコマンドを実した后,端末に表示されるアドレス(通过常はlocalhost:9229のようなもの)ををします。Chromeのdevtoolsををてjestををできます。

Chromedevelopertools銇,銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銇銈銈銈銈銈銈銈銈銈銈銈銈銈銈銈銈銈銈銈銈銈銈飞です)。次の実行に进むにはののの右侧ある再生物ボタンのようををクリック调试器宣言を含むテストをjestが実行しした合书,行动はポーズされ现い

注意:- runinband.CLI选项确保Jest在相同的过程中运行测试而不是单个测试的产卵过程。通讯JOSTにテストテスト実がが,同时ににからデバッグがががががするするするする困难ですがするするのの困难ががするするのはからデバッグデバッグするするののですデバッグをデバッグデバッグするするのだからから

vs codeでデバッグデバッグ

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

组み込みのデバッガを追加するには,前述した形でテストを実行して下さい。

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

そしてそして以の.启动.JSON.の设定によりvs代码のデバッガを加加して下载:

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

自动的に起起しを実行するするプロセスプロセスプロセスプロセスにはは,以下の成を使てし下载:

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

もしくはWindowsの融合は以をを使使ててください:

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

FacebookのCreate-React-Appをを使しいるなら,jestののテストをを以の设定でデバッグでき:

{
“版本” “0.2.0”
“配置” [
{
“名称” “调试CRA测试”
“类型” “节点”
“要求” “发射”
“runtimeexecutable” “$ {workspaceroot} /node_modules/.bin/reacect-scripts”
“args” [ “测试” “ - runinband” “--no-cache” ”- - - env = jsdom” ]
“CWD” “$ {workspaceroot}”
“协议” “检查员”
“安慰” “SideveTerminal”
“internalconsoleoptions” “nelepen”
}
]
}

节点によるによるデバッグについての详细ここで确认できます。

WebStorvででの

WebStorm.でjestのテストをデバッグする単简単な方法は,Jest运行/调试配置を使テストことです。これこれによりテストををする,自动的にデバッガがアタッチささます。

WebStormの跑步メニューで编辑配置...を选択します。それそれ+をクリックして,笑话を选択します。オプションでjestの设定ファイルや加のオプション,そして环境环境変をでき。设定を保存し,コードにブレークポイントを设け,绿色のデバッグアイコンクリッククリックてデバッグデバッグををください。

Facebook制のCreate-React-Appを实用している,jest运行/调试配置でjestパッケージフィールドで反应脚本のパスを指定し,jestオプションフィールドに——env = jsdomを加加してください。

キャッシュ関連の問題

jestががコードをを変换するスクリプトの変更,babelのアップデートを认识ててませんか?

——no - cacheオプションオプションを付けて再再実てみててさいjj速速ののためにされたモジュールファイルファイルしししますますますますますしますますますますますますます。getcachekey.关关を加加することを検讨しててて下载:getcachekey在继电器中

承诺がが解决され

承诺が全く解决されない料,このエラーが投げられるでしょでしょ:

- 错误:超时 - 在内部不会调用异步回调 超时 由jasmine.default_timeout_interval指定

最も多种原因は承诺のの装がががしいることです。グローバルグローバル承诺の実装,例えばなものにます,例えばGlobal.Promise = Jest.RequireAction('承诺');とします。そして(もしくは)使使ているいる承诺のライブラリを1つだけつだけ统统しししををしし

テストの実行が长长长かかるかかる合书,jest.settimeout.を呼び出してタイムアウト时空をことこともししなるでしょうでしょうううう。

笑话 索取 10000 ; // 10秒超时

守望者关键词

jestを- 没有守望人オプション付きで実行するかか成オプションで守望者错误的に设定してみくださいください。

守望者故障排除も参照して下载。

dockerおよび/またはciサーバ上でテストが极端に遅くなる

大众のの合书,モダンな高度なssdとマルチコアのコンピュータではjestははとても动作発见されています。

调べた结果に基因て,この问题ををしてし最大50%高速する1つの方法は,テストを顺番に実すること。

これを実施するには- runinband.オプションを指定してテスト同じ同じでで実実しし下载。

#使用Jest CLI
笑话——runInBand
#使用yarn测试(例如,使用Create-React-App)
测试 - runinband.

テスト実行时间を高度化するもう1つの案としてはtravis-ciのなciサーバでワーカーののを大大4.までに设定することです。特拉维斯 - ciに特价する,テストの実行时间をにできます。注意:オープンオープンソースプロジェクト利用できるtravis-ciのフリープランは2cpuコアまでまで割り当てません。

#使用Jest CLI
jest --maxworkers. = 4.
#使用yarn测试(例如,使用Create-React-App)
测试 --maxworkers. = 4.

coveragePathIgnorePatternsが動作していない

Babel-Plugin-Istanbulプラグインプラグイン使使てていないことことを确认ししてj j jjラップするラップするするするするするするををを收集するのにをを使ののかかををををののかををををにの伝え伝えBabel-Plugin-Istanbulをを用しした合书,Babelにより定理される全てののファイルはカバレッジコード备coveragePathIgnorePatternsで无视されなくますます。

定义测试

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

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

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

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

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

まだ解決しませんか吗?

亚搏取款を参照してください。