LoginSignup
6
2

More than 1 year has passed since last update.

CircleCIでjestを実行した際に時間がかかる問題を解決した

Posted at

現象

ローカル開発環境だと30sで終わるテストがCircleCIだと8m30sかかっていました。
場合によっては以下の様にOOMが発生していました。

Exited with code exit status 137
CircleCI received exit code 137

原因

jestをデフォルトの設定で実行すると並列数を実行環境のCPUの50%と動的に決まるのですが、コンテナの場合だと相性が悪く、並列数が増えることでメモリ使用量が増えた結果OOMしたり、一つ一つのテストが遅くなる様です。

対応

CircleCIの場合はjestの実行にオプションを付けて並列処理を制御する対応が必要です。

今回の場合ではコンテナのスペックがさっと把握できなかった事と--runInBandで充分な改善が継承できたためこちらで対応しました。
私の環境のCircleCIでテストの実行時間は元々8m30sでしたが、--runInBandをつけ直列実行にしたことで、30sに改善されました。

参考

https://doc.ebichu.cc/jest/docs/ja/cli.html
https://ishikawa-pro.hatenablog.com/entry/2020/10/19/100000

6
2
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
6
2