使用Spork时如何加载Machinist的蓝图?

时间:2011-01-28 21:57:51

标签: ruby-on-rails testing spork

使用Spork时如何加载Machinist的蓝图?

宝石:

  • mongoid(2.0.0.rc.6)
  • capybara(0.4.1.1)
  • 牛排(1.1.0)
  • spork(0.9.0.rc2)
  • rspec(2.4.0)
  • machinist(2.0.0.beta2)

我在每次验收测试中都会收到此错误:

Machinist::NoBlueprintError:
   No master blueprint defined for class School

所有测试都失败了,因为它没有找到任何蓝图。我在V2上的一些错误(我仍然得到一些没有主蓝图..),但我也得到另一个错误:

Professor Create a new professor
 Failure/Error: click_link("Profesores")
 RangeError:
   0x000000821461e4 is recycled object

我在测试环境中得到了config.cache_classes = false。

两个spec_helper版本:

https://gist.github.com/801814

1 个答案:

答案 0 :(得分:4)

我一直在用砖墙撞击,试图用你提到的所有宝石在窗户上进行测试。我在我的博客上写了一篇文章,以防有人感兴趣,是的我已经知道,windows是球,但我必须出于必要而使用它:

Setting up a fast efficient testing environment using Ruby192, Rails 3.0.4, RSpec 2.5.0, Cucumber 0.10.0 and Spork!

博客本身并没有提到机械师,但我实际上是用自己的2.0.0.beta2宝石用spork来进行我的黄瓜测试。

只是为了排除显而易见的事情,你在application.rb文件中包含了类似的内容:

config.generators do |g|
  g.fixture_replacement :machinist      
end

您还可以在以下位置设置蓝图文件:

features/support/blueprints.rb for cucumber   
spec/support/blueprints.rb for rspec

并确保你已经包括:

require 'machinist/active_record'

位于您的蓝图顶部。

另外还有另一个注意事项,当你启动它并运行时。 Machinist会缓存很多对象以使其运行得更快,但在不断尝试清除数据库时,它可能会偶尔绊倒你。如果遇到问题,可以通过将其添加到config / environments / test.rb文件来关闭Machinists缓存:

Machinist.configure do |config|
  config.cache_objects = false
end