🖥

Rails - Rspec で paralells spec を利用して並列処理する ( create / migrate / prepar

2023/10/07に公開

公式

https://github.com/grosser/parallel_tests

Gemfile

gem を追加して bundle install する

gem 'parallel_tests'

database.yml

公式READMEの通り DB設定で環境変数を利用するようにする
この環境変数はテスト実行時などに自動的に paralells spec が付与してくれる

test:
  database: yourproject_test<%= ENV['TEST_ENV_NUMBER'] %>

テスト実行

rails parallel:setup
rails parallel:spec

うまく行かない場合は以下でも良いかもしれない
parallel:setup / parallel:prepare コマンドは使わなくてもテスト実行できる

rails parallel:create
rails parallel:migrate
rails parallel:spec

何か思わぬエラーが起きた時は drop してからやり直すと良い

rails parallel:drop

コマンド

DB作成

rake parallel:create

結果の例

すべてのテスト用DBを作成してくれる

Created database 'example_test2'
Created database 'example_test4'
Created database 'example_test'
Created database 'example_test3'

マイグレーション

すべてのテスト用DBをマイグレーションする

rake parallel:migrate

Prepare

developementのスキーマをコピーしてくれるらしいが詳細は不明
あまり思いつく用途がないかも

テスト用DBがない状態でもDB作成・テーブル作成までしてくれる模様

Copy development schema (repeat after migrations)

rake parallel:prepare

セットアップ

もろもろ準備してくれて create / migerate がおこなわれた状態にしてくれるみたいだ
ただし seeds.rb も実行されるようなのでテストにseeds.rbの値を含めたくない場合は注意

Setup environment from scratch (create db and loads schema, useful for CI

rake parallel:setup

DB削除

すべてのテスト用DBを削除してくれる

rake parallel:drop

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2023-10-06

Discussion