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