トラブルシューティング
おやおや、うまくいきませんか? Jest についての問題を解決するのにこのガイドをご利用下さい。
理由は分からないがテストが失敗する
Try using the debugging support built into Node. debugger;
宣言をテストの任意の箇所に記述し、プロジェクトのディレクトリで以下のコマンドを実行して下さい。
node --inspect-brk node_modules/.bin/jest --runInBand [any other arguments here]
or on Windows
node --inspect-brk ./node_modules/jest/bin/jest.js --runInBand [any other arguments here]
このコマンドでJestは外部からのデバッガと接続できる状態のNodeプロセス上で実行されます。 プロセスはデバッガが接続されるまでポーズすることに注意して下さい。
Google Chrome (もしくは Chromium ベースのブラウザ)でデバッグするには、ブラウザを開いて、chrome://inspect
にアクセスし、 "Open Dedicated DevTools for Node" を開きます。 そうすれば接続できるアクティブな node インスタンスの一覧が表示されます。 上記のコマンドを実行した後、端末に表示されるアドレス(通常は localhost:9229
のようなもの)をクリックします。 ChromeのDevToolsを使ってJestをデバッグできます。
ChromeDeveloperToolsが表示され、Jest の CLIスクリプトの1行目にブレークポイントが設定されます(これは開発者ツールを開くための時間を設けて、その前に Jest が実行されてしまうのを防ぐためのものです)。 次の実行に進むには画面の上部右側にある再生ボタンのようなボタンをクリックします。 debugger
宣言を含むテストをJestが実行した場合、実行はポーズされ現在いのスコープとコールスタックを調べることができます。
The --runInBand
cli option makes sure Jest runs the test in the same process rather than spawning processes for individual tests. 通常Jestはプロセスをまたいで並列にテストを実行しますが、同時に複数のプロセスをデバッグするのは困難だからです。