Hi, I have to test one of my models, but it uses a seed database.
How do I delete everything on my database and create it again from seed (default code for some examples) for every one of my unit tests?
Right now, when I run rake db:test:units (and if I put something on my code like User.all.count) it says that there 2 users at the database (but with nil paramters except id). If I do a setup code to create the new instances at the database (as I want), it creates them, but there are still those 2 trash users there which makes my model not to work.
Thanks in advance
It is probably not the “optimal” way, but a “practical” way might be to do this:
WARNING: this will delete all data in development and test database !!
For the development database
rake db:drop
rake db:create
rake db:migrate
rake db:seed
For the test database
RAILS_ENV=test rake db:drop
RAILS_ENV=test rake db:create
RAILS_ENV=test rake db:migrate
RAILS_ENV=test rake db:seed
guard # Spork for RSpec
This works well as a set-up for rspec (and with static
seeded data, e.g. list of countries etc. available also
for the tests).
Maybe not optimal, but works well.
Alternatively, if you do not want to restart from scratch, just deleting all
users could be done with
rails console
User.delete_all
RAILS_ENV=test rails console
User.delete_all
Peter