迁移运行但RSpec仍无法找到该表

时间:2013-05-13 18:58:32

标签: rspec ruby-on-rails-3.2

正好试着从Paul Dix的书中运行第1章示例:

https://github.com/pauldix/service-oriented-design-with-ruby/tree/master/chapter_01

所以我做了一个bundle install,它运行正常。 然后我做了一个rake db:migrate,它也可以正常工作,输出如下:

➜  chapter_01 git:(master) ✗ rake db:migrate
D, [2013-05-13T13:55:13.316178 #9154] DEBUG -- :    (0.5ms)  SELECT "schema_migrations"."version" FROM "schema_migrations"
I, [2013-05-13T13:55:13.316265 #9154]  INFO -- : Migrating to CreateUsers (1)

现在我运行了一个rspec spec/service_spec.rb,它给了我以下错误,主要是说“用户”表格无法发挥作用。

 chapter_01 git:(master) ✗ rspec spec/service_spec.rb
D, [2013-05-13T13:57:16.893140 #9166] DEBUG -- : env: test
D, [2013-05-13T13:57:16.936232 #9166] DEBUG -- : db/test.sqlite3 database connection established...
/Users/BA018938/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/sqlite_adapter.rb:472:in `table_structure': Could not find table 'users' (ActiveRecord::StatementInvalid)

那是怎么回事?有人可以快速查看是否可以从GitHub运行此示例吗?

1 个答案:

答案 0 :(得分:7)

您需要构建测试数据库。因为默认情况下,迁移仅在您当前的环境中运行(在您的情况下,开发)。

http://guides.rubyonrails.org/testing.html

  rake db:migrate

  rake db:test:load