私の 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 に切り替えますが、テスト データ生成の他の手段を使用してすべてのテストを書き直すことはまだしたくありません。