Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

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

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

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

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

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

takewell
新卒一年目, Web で世直ししたいです。
https://takewell.dev
zozotech
70億人のファッションを技術の力で変えていく
https://tech.zozo.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away