実行し、テスト用のデータベースを準備する。並列化の効果は非常に大きく、これだけでテストの実行時間が3分の1程度になりました。parallel_testsを使う場合、以下の設定をしておくとオススメです。各specの実行時間を記録したログを出力しておく。公式リポジトリに説明があります。この設定を行うと前回の実行時間に基づいてspecファイルが分配されるため、プロセスごとの実行時間のばらつきが小さくなり、早く全てのテストが終わる。指定すると、テスト実行中に他の作業をするとき動作がもっさりしにくくなる。下記の施策は検討には上がっていたのですが、実施はしませんでした。本体への影響が大きかったり、実施に時間がかかるというのが主な理由です。弊社ではCIサービスのWerckerを利用しており、リポジトリへのpushを検知して自動でテストを流すようにしています。こちらも並列化により実行時間を大幅に短縮できたので、合わせてご紹介いたします。記載を以下のように変更するだけでした。rails-database-ymlが生成するdababase.ymlにはDB名に環境変数「TEST_ENV_NUMBER」が組み込まれている。rspecコマンドの代わりにparallel_rspecコマンドを使うだけ。specまとめ今回、弊社で実施したRSpecのテストコードの高速化事例をご紹介させていただきました。この活動はまだまだ終わりではなく、継続して改善していく必要があります(テストコードはどんどん増えていくため...)。今後、大きな改善をすることができたら、またこのブログで紹介したいと考えています。それでは最後まで読んでいただきありがとうございました。使ってみるみなさんこんにちは、ユニファの赤沼です。使ってみるみなさんこんにちは、ユニファの赤沼です。2021の15日目の記事です...2021-01-29Rubyの並行処理についてまとめてみるあいわらず鍋ばかり食べているWebエンジニアの本間です。12引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。