RSpec失败:迁移后无法找到表格?

nee*_*zer 29 rspec ruby-on-rails ruby-on-rails-3 factory-bot

我有一个裸导轨3应用程序与一个模型,生成使用rails g model User.

我添加了一个工厂(使用factory_girl_rails):

Factory.define :user do |f|
  f.email "test@test.com"
  f.password "blah"
  f.password_confirmation "blah"
  f.display_name "neezer"
end
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个测试:

require 'spec_helper'

describe User do

  subject { Factory :user }

  it "can be created from a factory" do
    subject.should_not be_nil
    subject.should be_kind_of User
  end

end
Run Code Online (Sandbox Code Playgroud)

然后我使用迁移我的数据库rake db:migrate.

然后我使用运行测试rspec spec,测试失败,并带有以下内容:

Failures:

  1) User can be created from a factory
     Failure/Error: subject { Factory :user }
     ActiveRecord::StatementInvalid:
       Could not find table 'users'
     # ./spec/models/user_spec.rb:5:in `block (2 levels) in <top (required)>'
     # ./spec/models/user_spec.rb:8:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为我只是迁移了我的数据库,而我的schema.db文件反映出有一个用户表存在,所以给出了什么?

我知道这是一个初学者的问题,但是我的头撞墙不行......

factory_girl (1.3.3)
factory_girl_rails (1.0.1)
rails (3.0.5)
rspec-rails (2.5.0)
sqlite3 (1.3.3)
Run Code Online (Sandbox Code Playgroud)

Spy*_*ros 84

尝试执行

rake db:test:prepare
Run Code Online (Sandbox Code Playgroud)

这应该修复你的测试db.

  • 试试`rake db:migrate spec` (3认同)