2015-04-11 1 views
0

Обновление от Rspec 2.x до 3.x, в проекте рельсов - с использованием Rails 4.1.x.Rspec-rails сбрасывает миграцию после запуска

Я получаю действительно странное поведение, когда я запускаю RSpec. Вот порядок событий.

  1. Как тестовые, так и нормальные среды полностью переносятся. Я проверяю это.

  2. Я бег RSpec с командой $ rspec

  3. Тогда я могу проверить свою миграцию, и это результат (для теста только производство не считает потери миграции): enter image description here

Я не понимаю, почему это все мои миграции. Может быть, это также поможет сказать: если я попытаюсь снова перейти на тест, я получу эту ошибку: enter image description here

Итак, во-первых, для чего это должно было бы отбросить все миграции? Это НЕ ОТКЛЮЧАЕТ их, они все еще там, так как таблицы все еще там.

[1]:

ответ

0

Rspec 3 has a new feature, который использует обновления в рельсах 4.1+, которая автоматически сохраняет схемы разработки и тестирования в синхронизации. Таким образом, это означает, что если вы уже выполнили свои миграции в процессе разработки, вам не нужно запускать их снова с RAILS_ENV=test. Вы можете дважды проверить, что у вас есть эта функция (функция Rspec 3 по умолчанию), активированная при просмотре rails_helper.rb и если у вас есть ActiveRecord::Migration.maintain_test_schema!.

+0

Я видел это и пробовал его работать с и без 'maintain_test_schema!' Работает, но поведение не меняется. Есть предположения? – jQwierdy

+0

Если rails + rspec поддерживает вашу тестовую БД для вас, вам не нужно запускать миграцию, когда 'RAILS_ENV = test' - так почему вы пытаетесь запустить их снова? – Hannah