公式
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
Copy development schema (repeat after migrations)
rake parallel:prepare
developementのスキーマをコピーしてくれるようだ
テスト用DBがない状態でもDB作成・テーブル作成までしてくれる
ここでいうスキーマとは何かというと、schema.rb を見ているわけではなくて実際の development のデータベース内容を見てコピーしてるっぽい
なので例えばCIでの実行であれば、まずdevelopのDBを作成しておく必要がある
例:
RAILS_ENV=development bundle exec rails db:create db:schema:load
bundle exec rails parallel:prepare
自動テスト用のDB作成でマイグレーションファイルの内容を全て走らせていると時間がかかるので、このような方式のほうがテスト時間を縮められるかもしれない
セットアップ
Setup environment from scratch (create db and loads schema, useful for CI
rake parallel:setup
もろもろ準備してくれてテスト用DBを作成してくれるみたいだ
こちらはprepareとは違って実際のDBではなく schema.rb を見てそう
ただし seeds.rb
も実行されるようなのでテストにseeds.rbの値を含めたくない場合は注意
DB削除
すべてのテスト用DBを削除してくれる
rake parallel:drop
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2023-10-06