RailsのCIでassets絡みのテストを速くするメモ

RailsのCIが遅くて辛かったので幾つかのテストでprofileを取ってみたところ、assetsを読み込む処理にすごく時間がかかっているようだった。 そういうパターンでは以下の手順でお手軽に高速化できたのでメモ

やったこと

  1. CIがrspecを走らせる前にassets:precompileを行う
  2. CIのときだけconfig.assets.compile = falseが動くようにconfig/environments/test.rbに設定を追加する

考えたら当たり前だけどコレだけでかなり早くなった。 (試した環境では40分ぐらいかかっていたテストが25分に短縮された。)

assetsが絡むテストの割合が少ない場合はassets:precompileのオーバーヘッドでむしろ遅くなったりも考えられるが、一回実行するだけでわかるので試しやすい。