我使用spork和guard加速我的Rails 3.2应用程序中的测试套件。然而,在添加新迁移之后,防护中的测试表现得很奇怪:即使我之前运行rake db:migrate
,它们也不会知道架构中的更改。当我停下来并运行rake spec
时,他们开始正常行事。我认为它的行为方式是这样的,因为spork / guard在测试之前不会更新模式。是否可以将spork配置为更新#prefork
上的模式并保护在模式更改时重新加载spork?
答案 0 :(得分:3)
您需要运行rake db:test:prepare
来应用迁移以进行测试环境。
答案 1 :(得分:0)
理论上,以下默认的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