【问题标题】:spork/guard reload schemaspork/guard 重载模式
【发布时间】:2013-01-28 13:01:18
【问题描述】:

我使用 spork 和 guard 来加速我的 Rails 3.2 应用程序中的测试套件。然而,在添加新迁移后,guard 中的测试表现得很奇怪:即使我之前运行过 rake db:migrate,它们也表现得不知道模式的变化。当我停止守卫并运行rake spec 时,它们开始正常运行。我想它的行为方式是这样的,因为 spork/guard 在测试之前不会更新架构。是否可以配置 spork 以更新 #prefork 上的架构并保护以在架构更改时重新加载 spork?

【问题讨论】:

  • 您使用什么数据库进行测试?迁移后尝试运行rake db:test:preparerake db:test:clone
  • db:test:prepare 一起使用。您能否添加一个答案以便我可以接受它;-)。我使用 mysql 顺便说一句。谢谢!

标签: mysql ruby-on-rails rspec guard spork


【解决方案1】:

您需要运行 rake db:test:prepare 以应用迁移以用于测试环境。

【讨论】:

    【解决方案2】:

    理论上,以下默认 Spork 设置代码应在每次运行测试时重新加载架构。你有吗?

      ActiveRecord::Schema.verbose = false
      silence_stream STDOUT do
        load Rails.root.join('db', 'schema.rb') # use db agnostic schema by default
        load Rails.root.join('db', 'seeds.rb')
      end
    

    【讨论】:

    • 是来自 spork 的代码还是我应该添加它?顺便提一句。我不想每次都重新加载它,但每次架构更改时。
    • 我认为它来自 spork,位于 spec_helper.rb 下。对我来说,在每次测试之前重新加载架构不会花费太多时间。
    猜你喜欢
    • 2011-12-11
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    相关资源
    最近更新 更多