Запустите тесты rspec с помощью sqlite: memory: - «миграции ожидают» - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу запустить тесты, используя rspec, в моем приложении ruby ​​on rails, используя sqlite с базой данных памяти.Тем не менее, каждый раз, когда я запускаю rspec, он говорит мне, что миграции ожидают, если я запустил миграцию заранее.Есть ли способ выполнить миграцию каждый раз, прежде чем запускать тесты?Вот моя конфигурация базы данных

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

1 Ответ

0 голосов
/ 10 февраля 2019

Вам нужно загружать схему в своих тестах, а не полагаться на миграции.

Как рекомендовано в этом блоге заменить

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"
...