How to load db:seed data into test database automatically? How to load db:seed data into test database automatically? ruby-on-rails ruby-on-rails

How to load db:seed data into test database automatically?


The db:seed rake task primarily just loads the db/seeds.rb script. Therefore just execute that file to load the data.

load "#{Rails.root}/db/seeds.rb"# orRails.application.load_seed

Where to place that depends on what testing framework you are using and whether you want it to be loaded before every test or just once at the beginning. You could put it in a setup call or in a test_helper.rb file.


I'd say it should be

namespace :db do  namespace :test do    task :prepare => :environment do      Rake::Task["db:seed"].invoke    end  endend

Because db:test:load is not executed if you have config.active_record.schema_format = :sql (db:test:clone_structure is)


Putting something like this in lib/tasks/test_seed.rake should invoke the seed task after db:test:load:

namespace :db do  namespace :test do    task :load => :environment do      Rake::Task["db:seed"].invoke    end  endend