How can I add my seed data to my test database using rake db:seed?
I'm using Factory Girl to populate my seed data and adding it to the db in seed.rb.
I'm then running my tests using Cucumber.
I have a price table that contains seed data that I want in all my environments.
I want rake db:seed to add it to my dev and test db's and for cucumber to be able to use that test seed. Then I'll 开发者_C百科add that seed data in prod also.
How can I ensure that my seed data is added to both dev and test db's?
rake db:seed #only adds it only to my dev database
You can try something like this:
rake db:seed RAILS_ENV=test --trace
rake db:seed RAILS_ENV=production --trace
Check out this answer from a similiar post.
I really think it's better to use factories to fill test database.
And if you need seed data during your tests add it as a before :all
block in spec_helper/test_helper.
You may want to visit this thread as well when working with a test database, especially since you do not want to persist data in your test database.
As your tests start to evolve you will most likely find yourself using the seed data, factories, as well as mocks, and with persistent data you will find yourself running into conflicts.
Personally I like to use a custom seed file for my test database, and load it in my rails_helper:
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
load "#{Rails.root}/db/custom_test_seed.rb"
精彩评论