Ruby on rails 3 要在运行之前加载种子数据吗
我希望cucumber在开始测试之前将种子数据加载到“db/seeds.rb”中。不是在每个场景或功能之前,而是在运行测试之前。 而且在每个场景之后,种子必须保留在db中 可能吗 我尝试创建一个文件“features/support/seed_data.rb”,并要求在其中包含我的db/seeds.rb,但似乎根本没有加载该文件。我试图在env.rb中要求我的种子-没有影响 请问,有人能给我建议解决办法吗Ruby on rails 3 要在运行之前加载种子数据吗,ruby-on-rails-3,cucumber,Ruby On Rails 3,Cucumber,我希望cucumber在开始测试之前将种子数据加载到“db/seeds.rb”中。不是在每个场景或功能之前,而是在运行测试之前。 而且在每个场景之后,种子必须保留在db中 可能吗 我尝试创建一个文件“features/support/seed_data.rb”,并要求在其中包含我的db/seeds.rb,但似乎根本没有加载该文件。我试图在env.rb中要求我的种子-没有影响 请问,有人能给我建议解决办法吗 提前谢谢 从seeds.rb文件中提取代码并将其粘贴到AfterConfiguration
提前谢谢 从seeds.rb文件中提取代码并将其粘贴到AfterConfiguration块中的hooks.rb中如何
AfterConfiguration do |config|
# Your code from seeds.rb
end
这应该在运行期间调用,就在cucumber配置之后。至少通过这种方式,您可以确定是否在包含种子文件方面存在问题。另一个想法是将seeds.rb作为一个模块直接粘贴到支持目录中,然后从AfterConfiguration调用它:
# db_seeds.rb
module DbSeeds
def seed_db
# Your Code
end
end
World(DbSeeds)
#hooks.rb
AfterConfiguration do |config|
seed_db
end
在support/hooks.rb文件中创建一个before钩子,如下所示:
Before('@load-seed-data') do
load File.join(Rails.root, 'db', 'seeds.rb')
end
@load-seed-data @US49
Scenario: This is a scenario that needs seed data.
Given...
在场景之前的测试中,按如下方式调用钩子:
Before('@load-seed-data') do
load File.join(Rails.root, 'db', 'seeds.rb')
end
@load-seed-data @US49
Scenario: This is a scenario that needs seed data.
Given...
非常感谢你。但这仍然不起作用,因为在每个场景之后,cucumber都会用所有种子清理数据库。真正的问题是,为什么cucumber在对数据库进行一次播种时会清理数据库。