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

gem :

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

  • 我在每个验收测试中都会遇到此错误:
    Machinist::NoBlueprintError:
       No master blueprint defined for class School
    

    所有测试均失败,因为它找不到任何蓝图。我在V2上遇到了一些错误(我仍然得到一些No master blueprint ..),但是我也遇到了另一个错误:
    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

    最佳答案

    我一直在撞墙,试图用提到的所有 gem 在 window 上进行测试。我在博客上写了一篇文章,以防万一有人感兴趣,是的,我已经知道, window 是球形的,但是出于必要,我不得不使用它:

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

    博客本身没有提到机械师,但实际上我是在自己使用带有spork的2.0.0.beta2 gem来运行我的 cucumber 测试。

    为了排除显而易见的情况,您是否在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
    

    关于ruby-on-rails - 使用Spork时如何加载机械师的蓝图?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4833450/

    10-17 00:40