我正在使用 Rspec (2.11.0) 和 FactoryGirl (4.0.0) 在 Ruby on Rails 3 中执行 TDD/BDD。我有一个 Category 模型的工厂:
FactoryGirl.define "Category" do
factory :category do
name "Foo"
end
end
如果我放弃,在测试环境中创建然后迁移数据库,我会收到此错误:
rake aborted!
Could not find table 'categories'
出现此问题的原因是 FactoryGirl 期望这些表已经存在(出于某种奇怪的原因)。如果我从我的 rails 应用程序中删除 spec 文件夹并执行db:migrate
,它可以工作。此外,如果我factory-girl-rails
从我Gemfile
的标记中标记:require => false
它也可以工作(那么我必须评论需要才能运行 rspec)。
我在这里找到了一些关于这个问题的信息:https ://github.com/thoughtbot/factory_girl/issues/88
我做错了什么吗?如何在db:migration
任务中“绕过”FactoryGirl 阶段?