Rails アプリケーションで Fixtures の代わりに FactoryGirl を使用しています。
テストで factory girl を使用してテスト データを作成しようとすると、次のように表示されます
PG:Error relation "users" doesn't exists
(私は User という名前のモデルを持っています)
しかし、rake db:test:clone
を実行してからテストを実行すると、テストに合格します。このrake db:test:clone
コマンドは、すべてのテーブル構造を開発データベースからテスト データベースに複製し、これにより問題が修正されます。
rake db:test:clone
しかし、FactoryGirl を使用しているときに実行されないようにする方法はありますか?
または私は何が欠けていますか?
アップデート :
Rspec と FactoryGirl を使用する別のアプリケーションがあります。rake spec --trace
そのアプリケーションでは、コマンドの実行時に以下が実行されます
** Invoke spec (first_time)
** Invoke db:test:clone_structure (first_time)
** Invoke db:structure:dump (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:structure:dump
** Invoke db:test:load_structure (first_time)
** Invoke db:test:purge (first_time)
** Invoke environment
** Invoke db:load_config
** Execute db:test:purge
** Execute db:test:load_structure
** Invoke db:structure:load (first_time)
** Invoke environment
** Invoke db:load_config
** Execute db:structure:load
しかし、新しいアプリケーションのいずれかで、実行時に以下が実行されていることがわかりますrake spec --trace
** Invoke spec (first_time)
** Invoke noop (first_time)
** Execute noop
** Execute spec
私が欠けているものを提案してください。
よろしく
バラン