ホームRailsの覚書Vue.jsの覚書MenuSidebarPrevNextSearchrailsでtest-queueを利用してcucumberを並列に実行するはじめに試験とは得てして時間が掛かるものだと思います。私が過去に経験した最も時間の掛かる試験は、一通り流すだけで三日くらい掛かる、本当にどうしようもないものでございました。試験が通らないとCIの関係からデプロイできないという仕様でした。したヘビー級の試験を少しでも早くしようという試みが、試験の並列化です。test-queueはそうした試験の並列化のためのgemの一つでございます。試験を並列化するためのgemは他にも幾つかあります。どれも実際に現場で利用しみると、少なくとも対象がcucumberである時点で、性能はほとんど変わりません。どのgemも単一のfeatureファイルに記述された試験を複数のworkerに分割して実行できないからです。試験ポリシー及びfeaturesの設計指針から、特定のfeatureファイルが突出して肥大化するのはよくあることです。改善のためには、それら設計を根本から見直す必要があったりして、意外と修繕に手間が掛かります。試験コードのリファクタリングは、上も投資判断が鈍るものです。それでも最善を得る為、試験が均等に複数のfeatureファイルに分散している場合を考慮して、test-queueが有利である可能性が比較的高いと判断いたしました。いったケースに備えて、parallel-testではなくtest-queueをチョイスするのは賢い選択だと信じております。featuresの設計、強いては試験ポリシーの設計の大切さが身にしみます。なによりも大切なのは、parallel-testをtest-queueに変更する行為ではなく、より読みやすく扱いやすい、それでいて必要最低限の試験だと強く思います。試験の負債ほど恐ろしいものはありません。気づかぬ間に時間が奪われていきます。必要なインストール作業はgemのインストールのみです。test-queueそして、実行は以下の通りです。features/これだけで複数のworkerがCPUの数だけforkされて、並列に実行されることになります。実際にCPUの数だけworkerが走っている様子を確認すると、自分は何も大したことはしていないのに、妙な全能感に浸ることのできるgemでございます。