在Rails测试环境中添加种子数据的简洁方法

时间:2011-06-20 14:41:50

标签: ruby-on-rails ruby-on-rails-3

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

我最终应用了这个答案How to load db:seed data into test database automatically?

setup :load_seeds

def load_seeds
  load "#{Rails.root}/db/seeds.rb"
end

问题是这会在每次测试时加载种子,这非常慢。另一个问题是,一旦测试运行,这些数据就会消失,因此rails控制台无法使用我的种子数据。

我打算稍后将种子数据迁移到灯具,但我现在没有时间这样做。

如何只加载一次这个数据,然后使用这个种子数据运行我的测试?

3 个答案:

答案 0 :(得分:1)

这是一个非常干净的答案:How do I load seed.rb within a Rails test environment using rpec? 您使用rake RAILS_ENV=test db:seed

答案 1 :(得分:0)

  • 在测试文件夹中创建'test_seed.rb'文件
  • 在'test_helper.rb'中需要您的test_seed文件
  • 将初始化(种子设定)和任何其他数据库范围的操作放在test_seed.rb中

答案 2 :(得分:0)

将其放入您的spec_helper或等效文件中:

Rails.application.load_seed