5

使用 Spork 时如何加载机械师的蓝图?

宝石:

  • mongoid (2.0.0.rc.6)
  • 水豚 (0.4.1.1)
  • 牛排 (1.1.0)
  • 叉叉 (0.9.0.rc2)
  • rspec (2.4.0)
  • 机械师(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

4

1 回答 1

4

我一直把头撞在砖墙上,试图用你提到的所有宝石在窗户上运行测试。如果有人感兴趣,我在我的博客上写了一篇文章,是的,我已经知道,windows 是球,但我不得不使用它是出于必要:

使用 Ruby192、Rails 3.0.4、RSpec 2.5.0、Cucumber 0.10.0 和 Spork 设置快速高效的测试环境!

博客本身并没有提到机械师,但实际上我自己使用 2.0.0.beta2 gem 和 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
于 2011-02-21T22:49:29.927 回答