お世話になっております。
テストコードの初期データを作成する際に、materialized viewのデータをどのようにリフレッシュすれば良いのか教えて頂きたいです。
現在はテストコードのsetupにリフレッシュの処理を書いていますが、テスト毎にビューテーブルのリフレッシュが走って
しまい、処理時間的にネックになっています。
イメージとしては、fixutresを流しきったあとにビューテーブルをリフレッシュして、各テストの処理を走らせたいです。
ruby
1# 現在の実装 2require 'test_helper' 3class ControllerTest < ActionDispatch::IntegrationTest 4 # このリフレッシュの処理が、毎テストごとに流れてしまい、処理が遅くなっている 5 def setup 6 ActiveRecord::Base.connection.execute('REFRESH MATERIALIZED VIEW view_table') 7 end 8 9 test 'test 1' do 10 end 11 12 test 'test 2' do 13 end 14end
また、試しにsetupではなく、test_helperにも書いてみましたが、fixturesを入れる前に流れてしまい、ビューテーブルのリフレッシュ
がされませんでした。
どのようにすれば、fixturesが流れきったあとにリフレッシュ処理を差し込めるでしょうか?
(例えば、rails tでテストが流れ、内部でdb:fixtures:loadでfixturesが読み込まれたあとに、コールバックでマテリアライズドビューのリフレッシュを流すようなことが出来れば、実現できるのではないかと思っています。)
方法を問わず知恵を頂ければと思います。
宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/09 04:12 編集