【问题标题】:Spork with Mongoid, Factory Girl, and RSpec config does not update models带有 Mongoid、Factory Girl 和 RSpec 配置的 Spork 不会更新模型
【发布时间】:2012-01-12 22:12:35
【问题描述】:

我正在尝试将 Spork 配置为与 RSpec 和 Mongoid 一起使用。模型不是每次都重新加载。我发现了一个描述,建议进行以下 spec_helper 调整以使 mongoid 重新加载,但现在工厂女孩不高兴。它正在返回:

uninitialized constant Rails::VERSION (NameError)
/home/dev1173/.rvm/gems/ruby-1.9.2-p290@version-two/gems/factory_girl-2.3.2/lib/factory_girl.rb:23:in '<top (required)>'

这里是spec/spec_helper.rb的内容

require 'rubygems'
require 'spork'

Spork.prefork do
  ENV["RAILS_ENV"] ||= 'test'
  require "rails/mongoid"
  Spork.trap_class_method(Rails::Mongoid, :load_models)

  require 'factory_girl_rails'
  Spork.trap_class_method(Factory, :find_definitions)

  require 'rspec/rails'
  require 'capybara/rspec'
  require 'capybara/rails'
  require "email_spec"
  require File.expand_path(File.dirname(__FILE__) + '/../config/environment')

  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

  RSpec.configure do |config|

    config.infer_base_class_for_anonymous_controllers = false  

    # Allows email magic
    config.include(EmailSpec::Helpers)
    config.include(EmailSpec::Matchers)

    require 'database_cleaner'
    config.before(:suite) do
      DatabaseCleaner.strategy = :truncation
      DatabaseCleaner.orm = "mongoid"
    end

    config.before(:each) do
      DatabaseCleaner.clean
    end

  end
end

Spork.each_run do
end

我一直在努力解决这个问题。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails mongoid factory-bot rspec-rails spork


    【解决方案1】:

    您应该在 config/environments/test.rb 中设置 cache_classes = false 并删除以下行

    require 'factory_girl_rails'
    Spork.trap_class_method(Factory, :find_definitions)
    

    或者,如果您想保持 cache_classes 为真,请遵循我的指南:

    Using spork and rails 3.1 with cache_classes true

    【讨论】:

    • 谢谢! cache_classes = true 是我错过的。想知道为什么它没有正确重新加载它们。
    • +1 链接指南。让我摆脱了一大堆麻烦。谢谢
    猜你喜欢
    • 2014-01-12
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2012-06-12
    • 2012-02-03
    • 1970-01-01
    相关资源
    最近更新 更多