Ruby on rails 在Rails测试环境中添加种子数据的干净方法

Ruby on rails 在Rails测试环境中添加种子数据的干净方法,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,Rails 3提供了seeds.rb来为生产环境加载最小的数据集。但是,我无法在测试环境中正确加载这组数据 我最终应用了这个答案 设置:加载种子 def加载_种子 加载“#{Rails.root}/db/seeds.rb” 结束 问题是每次测试都会加载种子,而且速度非常慢。另一个问题是,一旦测试运行,这些数据就会消失,所以rails控制台不能处理我的种子数据 我计划稍后将种子数据迁移到fixture,但我现在没有时间这么做 如何仅加载一次此数据,然后使用此种子数据运行测试? 在测试文件夹中创建

Rails 3提供了seeds.rb来为生产环境加载最小的数据集。但是,我无法在测试环境中正确加载这组数据

我最终应用了这个答案

设置:加载种子
def加载_种子
加载“#{Rails.root}/db/seeds.rb”
结束
问题是每次测试都会加载种子,而且速度非常慢。另一个问题是,一旦测试运行,这些数据就会消失,所以rails控制台不能处理我的种子数据

我计划稍后将种子数据迁移到fixture,但我现在没有时间这么做

如何仅加载一次此数据,然后使用此种子数据运行测试?

  • 在测试文件夹中创建“test_seed.rb”文件
  • 在“test\u helper.rb”中,需要测试种子文件
  • 在test_seed.rb中放置初始化(种子设定)和任何其他db范围的操作

    • 这里有一个非常清晰的答案:
      您可以使用rake RAILS\u ENV=test db:seed

      将其放入您的spec\u助手或等效工具中:

      Rails.application.load_seed
      

      事实上,我已经尝试过这种方法(但是我使用了rails 3.0提供的seeds.rb,而不是需要特定的测试种子文件)。不幸的是,种子会加载,但在任何测试完成后会立即被删除。稍后我将提供有关它的要点,并将编辑我的问题。