Rspec-rails在运行后丢弃迁移

时间:2015-04-11 21:10:36

标签: ruby-on-rails-4 rspec rspec-rails rspec3

使用Rails 4.1.x在rails项目中从Rspec 2.x升级到3.x.

当我运行RSpec时,我发现了一个非常奇怪的行为。这是事件的顺序。

  1. 完全迁移了测试环境和普通环境。我测试一下。

  2. 我使用命令$ rspec

  3. 运行rspec
  4. 然后我可以检查我的迁移,这是结果(仅供测试,生产不会认为它会导致迁移失败):enter image description here

  5. 我无法理解为什么这会导致我的所有迁移失败。也许它也会有所帮助:如果我再次尝试迁移测试,我会收到此错误:enter image description here

    首先,为什么会放弃所有迁移?它实际上并没有放弃它们,它们仍然在那里 - 因为桌子都还在那里。

    [1]:

1 个答案:

答案 0 :(得分:0)

Rspec 3 has a new feature利用rails 4.1+中的更新,自动保持开发和测试模式同步。因此,这意味着如果您已在开发中运行迁移,则无需再次使用RAILS_ENV=test运行它们。您可以通过查看rails_helper.rb并查看是否已设置ActiveRecord::Migration.maintain_test_schema!来仔细检查是否已启用此功能(Rspec 3默认设置)功能。