使用sqlite启动rspec测试:内存:-“迁移未完成”

时间:2019-02-09 22:03:18

标签: ruby-on-rails sqlite rspec-rails

我想使用sqlite和内存数据库在我的ruby on rails应用程序上使用rspec运行测试。但是,每次我启动rspec时,它都会告诉我迁移正在挂起,如果我事先运行了迁移,就可以了。有没有办法在我运行测试之前每次都进行迁移? 这是我的数据库配置

test:
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
  database: ":memory:"

1 个答案:

答案 0 :(得分:0)

您需要在测试中加载架构,而不是依赖迁移。

根据this blogpost的替换建议

ActiveRecord::Migration.maintain_test_schema!

使用

ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
ActiveRecord::Schema.verbose = false
load "#{Rails.root.to_s}/db/schema.rb"