3

私の Rails アプリケーションでは PostgreSQL スキーマを使用していますが、すべてのスキーマにすべてのテーブルが含まれているわけではありません。(特にデフォルト パスはそうではありません) これにより、 でフィクスチャをロードする際に問題が発生しTest::Unitます。

でスキーマ検索パスを設定していますsetupが、使用するフィクスチャを有効にすると、セットアップが検索パスを変更するfixturesにフィクスチャがロードされ、フィクスチャをロードできません。

class ActiveSupport::TestCase

  fixtures :model1, :model2     #Fixtures are loaded before setup below

  setup do
    # Setup schema search path
  end
end

フィクスチャの読み込みを遅らせsetupたり、フィクスチャが読み込まれる前にデータベース接続を変更したりすることはできますか? (注: すべてのテストが同じ検索パスで機能するわけではありません!)

いくつかの背景: 既存のテストは異なるスキーマのない古いバージョンからのものであるため、将来のテストでは間違いなく factory_girl に切り替えますが、テスト データ生成の他の手段を使用してすべてのテストを書き直すことはまだしたくありません。

4

0 に答える 0