Rspec bundler:无法加载命令:rspec

时间:2017-06-16 14:25:57

标签: ruby-on-rails ruby rspec

运行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仍无效。有人会知道如何解决这个问题吗?是否有一个快速而肮脏的解决方案,允许我通过排除与载波相关的项目来测试应用程序的其他部分?感谢。

1 个答案:

答案 0 :(得分: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