👻

Jestで結合テストがたまに失敗するのでリトライ出来るようにする。

2022/10/25に公開

事例

CIで結合テストがたまに失敗してしまうのでリトライ出来るようにしたい。

前提

  • Jest 27以上
  • 27未満の場合はjest-circusをパッケージマネージャでインストール。

__test__/sample.test.js
// テストで失敗したら一度再試行。
// describeの中でもよい。
jest.retryTimes(1)
describe('test', () => {
  test('unstable test', () => {
  ...
  })
})

注意

  • describeの中に書いても良いがtestの中に書くと機能しない。
  • beforeEachの中に書いても機能しない。
  • この書き方だと、ファイル内のすべてのテストに対してretryするようになります。(以下の記事で特定のテストだけに適用する方法も書いていました。)
  • 詳しくは公式を見てください。(これは2,3次情報になります)

参考にさせていただいた記事や公式

https://jestjs.io/ja/blog/2021/05/25/jest-27
https://jestjs.io/ja/docs/jest-object#jestretrytimesnumretries-options
https://zenn.dev/media_engine/articles/retry-flaky-tests-with-jest
https://zenn.dev/sosukesuzuki/articles/560c751e62a515

Discussion