テスト中に Friendly_id または少なくとも履歴モジュールを無効にする方法はありますか?
概要
Rails アプリケーションに、history モジュールを有効にして Friendly_id を追加したところ、テスト中のパフォーマンスが急激に低下しました。最高のランニングでは 15 分から 30 分になることについて話していますが、場合によっては数時間のマークに達することもあります (どれくらいの長さかはわかりません。待つには長すぎました)。
私のテストでは多くの記録が作成されます (長い話はまた別の機会に)。私の知る限り、履歴モジュールに関連する特定のクエリが 1 つあり、実行に 1 ~ 2 秒ほどかかることがあります。その理由はまだ 100% わかりませんが、実際のところ、ほとんどのテストでは Friendly_id スラッグ生成は必要なく、1 つのテストを除いて履歴追跡も必要ありません。
Friendly_id スラッグの生成を一時的にオフにすることはできますか?それとも履歴モジュールをオフにすることは可能ですか?
関連するコードはここにあります: https://github.com/pupeno/repeater_world/blob/b83ea68f3bbd4a12c63d726983b70f125e9b6e11/app/models/repeater.rb#L105-L106 (すべてオープンソースです):
include FriendlyId
friendly_id :generate_slug, use: [:slugged, :history]
解決策
これを試してみてはいかがでしょうか:
unless Rails.env.test?
include FriendlyId
friendly_id :generate_slug, use: [:slugged, :history]
end
でも、副作用が出る可能性もあると思います。