I have been attempting to get rspec running on Ubuntu without much
luck.
I finally got it to go, but I can’t figure out how to turn off the
database access.
I created a new test project named myspec
Ran
script/generate rspec
and then so I would have restful routes, ran
script/generate rspec_scaffold page title:string body:text
Out of the box, 5 of the tests are failing because the test database
is not being populated. This is probably a config issue, but after
many hours, I can’t figure what to do.
Thanks in advance
ActiveRecord::StatementInvalid in ‘Page should create a new instance
given valid attributes’
Mysql::Error: Table ‘myspec_test.pages’ doesn’t exist: SHOW FIELDS
FROM pages
./spec/models/page_spec.rb:12:
spec/views/pages/show.html.erb_spec.rb:3:
If you have created it, then perhaps the test db doesn’t have the
right tables. So, try “rake db:test:prepare”. You’ll need to do that
after every migration as well.
If you have created it, then perhaps the test db doesn’t have the
right tables. So, try “rake db:test:prepare”. You’ll need to do that
after every migration as well.
Once your test database is built, using “rake spec” should ensure
that your test database matches the structure of your dev database,
before running your specifications.
Thanks
rake db:test:prepare did the trick. I am still a bit confused as to
why rake cares about a database that it isn’t using.
But I guess that will all fall into place in my brain one day.
Well, the test database is for ehrm, testing :). So rake is actually
using it.
Thanks
rake db:test:prepare did the trick. I am still a bit confused as to
why rake cares about a database that it isn’t using.
But I guess that will all fall into place in my brain one day.
For some reason I thought I was using the fixture that thescript/
generate rspec_scaffold method created for me.
And further that the fixture didn’t use a database, but pretended that
it did.
Thanks
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.