2017-06-16 39 views
0

运行rspec时出现以下错误。Rspec bundler:未能加载命令:rspec

bundler: failed to load command: rspec (/home/bastien/.rbenv/versions/2.3.1/bin/rspec) 
NameError: uninitialized constant CarrierWave::Storage::Fog 

这是我的Gemfile的 “测试部分”

group :development, :test do 
gem 'rspec' 
gem 'rspec-rails' 
gem 'factory_girl_rails' 
gem 'capybara' 
gem 'selenium-webdriver' 
gem 'database_cleaner' 
gem 'shoulda-matchers' 
gem 'spring' 
end 

我已经尝试了很多事情要解决这个问题,包括增加两个

rails_helper.rb 
spec_helper.rb 

这些不同的要求

require 'spec_helper' 
require 'rails_helper' 
require 'rspec/rails' 
require 'carrierwave' 
require "rails_helper" 
require 'rails/all' 
require 'rubygems' 

编辑

Carrierwave初始化文件

CarrierWave.configure do |config| 
config.fog_credentials = { 
provider:    'AWS', 
aws_access_key_id:  ENV['S3_KEY'], 
aws_secret_access_key: ENV['S3_SECRET'], 
region: 'us-east-1' 

} 

if Rails.env.test? || Rails.env.cucumber? 
CarrierWave.configure do |config| 
config.storage   = :file 
config.enable_processing = false 
end 
end 

config.cache_dir  = "#{Rails.root}/tmp/uploads" 
config.fog_directory = ENV['S3_BUCKET_NAME'] 
end 

Rspec的还是在应用程序工作正常不工作。任何人都可以知道我如何解决这个问题吗?是否有一个快速和肮脏的修复,将允许我通过排除carrierwave相关的项目来测试应用程序的其他部分?谢谢。

+0

你有没有试过google未初始化的常量CarrierWave :: Storage :: Fog'?很多选项:Gemfile,CarrierWave初始化程序,根据环境配置CarrierWave/Fog的任何地方。 –

+0

嗨巴斯蒂安。你的'initializers/carrierwave.rb'文件是什么样的? – Belder

回答

0

文件生成的问题是在上传文件夹(doc_uploader.rb)

测试环境未正确使用

if Rails.env.development? 
    storage :file 
else 
    storage :fog 
end 

宣布,我不得不改变成

if Rails.env.development? || Rails.env.test? 
    storage :file 
else 
    storage :fog 
end