因此我在迁移中加载了一些数据,例如,在创建用户表时创建了默认用户,并且在创建foos表时创建了某些用户角色(如foo_admin)。
问题是黄瓜不喜欢这样,因为它会进行架构加载。
我可以让黄瓜只运行迁移,或者是否有更好的做法来做这类事情?机械师被用作工厂(没有固定装置!)
答案 0 :(得分:2)
不要使用迁移来加载数据。它被广泛认为是一种不好的做法,因为在构建schema.rb时不会保留数据加载。
从rake任务或您可以挂钩到env.rb文件的开始博客的其他方法加载数据
begin do
Role.create :name=>"admin"
`rake RAILS_ENV="test" db:load_data_for_testing `
end
或类似的东西。
答案 1 :(得分:0)
我遇到了类似的问题,并将其追溯到rake中的依赖项。我的解决方案是直接运行黄瓜脚本而不用rake,但这可能需要在Rails中进行一些配置(Merb它可以在框中运行)。另一个解决方案是将rake任务覆盖到它依赖于db:migrate而不是db:load_schema。
NB。我对最近版本的rails没有什么经验,可能也是bin / cucumber脚本或加载模式文件的env.rb文件中的东西。