尝试加载gem'factory_girl_rails'时出错。 (捆扎机:: GemRequireError)

时间:2016-02-29 10:40:01

标签: ruby-on-rails ruby rubygems factory-bot

我无法加载gem factory_girl_rails来正确运行我的测试。 我检查了每一个地方,但我无法解决它。 运行spec时出现错误:

/Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:80:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'factory_girl_rails'. (Bundler::GemRequireError)
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `each'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `block in require'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `each'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `require'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/bundler-1.11.2/lib/bundler.rb:99:in `require'
    from /Users/qcherifi/Documents/perso/wan/wannatalk.io/config/application.rb:7:in `<top (required)>'
    from /Users/qcherifi/Documents/perso/wan/wannatalk.io/config/environment.rb:2:in `require'
    from /Users/qcherifi/Documents/perso/wan/wannatalk.io/config/environment.rb:2:in `<top (required)>'
    from /Users/qcherifi/Documents/perso/wan/wannatalk.io/spec/spec_helper.rb:2:in `require'
    from /Users/qcherifi/Documents/perso/wan/wannatalk.io/spec/spec_helper.rb:2:in `<top (required)>'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/configuration.rb:1295:in `require'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/configuration.rb:1295:in `block in requires='
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/configuration.rb:1295:in `each'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/configuration.rb:1295:in `requires='
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/configuration_options.rb:109:in `block in process_options_into'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/configuration_options.rb:108:in `each'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/configuration_options.rb:108:in `process_options_into'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/configuration_options.rb:21:in `configure'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/runner.rb:105:in `setup'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/runner.rb:92:in `run'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/runner.rb:78:in `run'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/lib/rspec/core/runner.rb:45:in `invoke'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.4.3/exe/rspec:4:in `<top (required)>'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/bin/rspec:23:in `load'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/bin/rspec:23:in `<main>'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
    from /Users/qcherifi/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'

捆绑安装没问题,这是我在/ gemfile中的宝石

 group :development, :test do 
  gem 'sqlite3'

  gem 'pry-byebug'
  gem 'binding_of_caller'
  gem 'better_errors'

  gem 'web-console', '~> 2.0'

  gem 'spring'
  gem 'capybara'
  gem 'rspec-rails', '~> 3.0'
  gem 'factory_girl_rails'  
  gem 'database_cleaner'
end

/spec/models/participant_spec.rb

require 'spec_helper'

RSpec.describe Participant, type: :model do
  it "has a valid factory"
    Factory.create(:participant).should be_valid
  it "is invalid without a name"
  it "returns a participant's full name as a string"
end

/spec/factories/participants.rb     要求'faker'

FactoryGirl.define do
  factory :participant do |f|
    f.name {Faker::Name.name}
    f.email {Faker::Internet.email}
    f.password {Faker::Internet.password(8)}
  end
end

1 个答案:

答案 0 :(得分:2)

之前我遇到过这个问题,这个错误有三个可能的原因:

  1. 您的Gemfile已重复。
  2. 您尚未安装节点js
  3. 您已复制了factory_girl.rb