• 作成:

jest自体の動作確認は--no-cacheオプションを付けて行いましょう

ハマった順序

babel 7にプロジェクトのライブラリをアップデートしたらjestがbabelのビルドでコケるようになりました.

対応コードを色々書いてみて成功したので, 本当に必要な記述だけを見極めるために変更を元に戻しました.

そして失敗を確認するために再度テストを実行したら何故かテストが成功するようになりました.

CircleCIでは失敗するのでそのリビジョンでは既に修正されていたということも無さそうです.

原因

キャッシュが原因でした.

私もキャッシュが原因だと疑ったのでgit clean -dxiしたり. yarn.lockを消したり. cacheと.local以下などのyarn関連ディレクトリを削除したり等色々行いました. しかし無駄でした.

色々調べた結果, jestは--no-cacheオプションを付けるとキャッシュを使わずに実行されるようです. これを実行したら無事テストビルドが失敗するようになりました.

yarn jest --showConfigで設定を見たらjestはデフォルトでは/tmp/jest_rsにキャッシュを保存するようですね. そっちかー.

babel 7への対応

jest 22.4.2はまだ完全にbabel 7の新パッケージ名に移行してないようなのでjest用に旧babelパッケージを指定しておく必要があるようです.

要するにyarn add babel-core babel-jestする必要があるようです.

わかってしまえばあっけないものですね.