LoginSignup
19
4

More than 5 years have passed since last update.

Circle CI 上での jest テストが not enough memory となる場合の対処

Last updated at Posted at 2019-02-28

Circle CI の上で Jest による JS のテストを実行するケースがあるがそこそこの量のテストをかくと、メモリ容量が枯渇してしまう場合がある。
ローカルでは発生しない問題なので少し調査しました。

これは Jest が 子プロセスをそれぞれのテストに対して立ち上げすぎていて、メモリを食いつぶしていることが原因だと考えられます。

Node.js のドキュメントにも起動時間のオーバーヘッドとメモリをそこそこ占有するので多数立ち上げすぎるのは推奨しないと書いてありますね。

解決策としては jest --runInBand のオプションを使うことで 子プロセスをたちあげないようにするのが適当そうです。

子プロセスを立ち上げる行為は並列実行を意図したものなので最近 Node.js に入った worker_thread などの仕組みを利用するのが最適なのかもしれませんね。

以上
ただのドキュメントの参照で恐縮ですが「 Circle CI, Jest, not enough memory」 でランディングした方参考にしてみてください。

19
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
4