💭
rspec-sidekiq が開発環境でも Testing Mode を有効化してしまう問題と対処法
問題の概要
RSpecでSidekiqのジョブをテストするために
rspec-sidekiq を導入したところ、開発環境でSidekiqがRedisにジョブが入らなくなり、ジョブを実行できなくなりました。
⛔️ WARNING: Sidekiq testing API enabled, but this is not the test environment.
原因
これは、rspec-sidekiq が グローバルに Sidekiq::Testing.fake! を有効化してしまうため、テスト以外の環境でも「テストモード」になってしまうのが原因です。
解決策:Gemfile で test 環境のみに限定する
いろいろ試してみたんですが、結果これで解決しました。
Gemfile
group :test do
gem "rspec-sidekiq"
end
これで、rspec-sidekiq は RSpec実行時(RAILS_ENV=test) だけ読み込まれ、
開発環境や本番環境では無効になります。
🎯 結論
rspec-sidekiq を利用する際は「テスト専用Gem」として扱い、group :test に閉じ込めることで、開発・本番環境への副作用を防ぎます。
Discussion