Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 要在运行之前加载种子数据吗_Ruby On Rails 3_Cucumber - Fatal编程技术网

Ruby on rails 3 要在运行之前加载种子数据吗

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

我希望cucumber在开始测试之前将种子数据加载到“db/seeds.rb”中。不是在每个场景或功能之前,而是在运行测试之前。 而且在每个场景之后,种子必须保留在db中

可能吗

我尝试创建一个文件“features/support/seed_data.rb”,并要求在其中包含我的db/seeds.rb,但似乎根本没有加载该文件。我试图在env.rb中要求我的种子-没有影响

请问,有人能给我建议解决办法吗


提前谢谢

从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在对数据库进行一次播种时会清理数据库。