我在 Rails 应用程序中使用 FactoryGirl 而不是 Fixtures。
当我尝试在测试中使用工厂女孩并创建一些测试数据时,它显示为
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
请建议我错过了什么?
问候
巴兰