質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

3145閲覧

Rspec実行時のエラーについて

hidekie

総合スコア27

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/10/04 09:40

編集2018/10/04 16:55

bundle exec rspec をターミナルで実行した際に下記のようなエラーが発生してしまいます。
なんだか2行目を見るとCarrierWaveでバグっている可能性もありますが解決法がわからないです。
どなたかご教授いただけると幸いです。

出ているエラーコード

bundler: failed to load command: rspec (/Users/hideki/.rbenv/versions/2.3.1/bin/rspec) NameError: uninitialized constant CarrierWave /Users/hideki/Desktop/localprojects/chat-spaceP/app/uploaders/image_uploader.rb:1:in `<top (required)>' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.4/lib/active_support/dependencies/interlock.rb:12:in `block in loading' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.4/lib/active_support/concurrency/share_lock.rb:150:in `exclusive' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.4/lib/active_support/dependencies/interlock.rb:11:in `loading' /Users/hideki/Desktop/localprojects/chat-spaceP/app/models/message.rb:7:in `<class:Message>' /Users/hideki/Desktop/localprojects/chat-spaceP/app/models/message.rb:1:in `<top (required)>' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.4/lib/active_support/dependencies/interlock.rb:12:in `block in loading' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.4/lib/active_support/concurrency/share_lock.rb:150:in `exclusive' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.4/lib/active_support/dependencies/interlock.rb:11:in `loading' /Users/hideki/Desktop/localprojects/chat-spaceP/spec/models/message_spec.rb:3:in `<top (required)>' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `block in load_spec_files' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `each' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load_spec_files' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:96:in `setup' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:84:in `run' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:69:in `run' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:37:in `invoke' /Users/hideki/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/exe/rspec:4:in `<top (required)>' /Users/hideki/.rbenv/versions/2.3.1/bin/rspec:23:in `load' /Users/hideki/.rbenv/versions/2.3.1/bin/rspec:23:in `<top (required)>' Coverage report generated for RSpec to /Users/hideki/Desktop/localprojects/chat-spaceP/coverage. 15 / 149 LOC (10.07%) covered.

###以下それぞれのrspec内の記述です

ruby:rspec/factories/groups.rb

1FactoryGirl.define do 2 factory :group do 3 name Faker::Team.name 4 end 5end

ruby:rspec/factories/messages.rb

1FactoryGirl.define do 2 factory :message do 3 body Faker::Lorem.sentence 4 # image File.open("#{Rails.root}/public/uploads/message/image/17") 5 group 6 user 7 end 8end

ruby:rspec/factories/users.rb

1FactoryGirl.define do 2 factory :user do 3 password = Faker::Internet.password(8) #パスワードは2箇所で出てくるので上でまとめておいたほうがいい 4 name Faker::Name.last_name 5 email Faker::Internet.free_email 6 password password 7 password_confirmation password 8 end 9end

ruby:rspec/models/message_spec.rb

1require 'rails_helper' 2 3RSpec.describe Message, type: :model do 4 describe '#create' do 5 context 'can save' do 6 7 it "is valid with a body" do 8 expect(buid1d(:message, body: "")).to be_valid 9 end 10 11 12 end 13 end 14end

ruby:gemfile

1source 'https://rubygems.org' 2 3git_source(:github) do |repo_name| 4 repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") 5 "https://github.com/#{repo_name}.git" 6end 7 8gem 'rails', '~> 5.0.1' 9gem 'mysql2', '0.3.18' 10gem 'jbuilder', '~> 2.5' 11gem 'puma', '~> 3.0' 12gem 'sass-rails', '~> 5.0' 13gem 'uglifier', '>= 1.3.0' 14gem 'coffee-rails', '~> 4.2' 15gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 16#見た目系 17gem 'jquery-rails' 18gem 'turbolinks', '~> 5' 19gem 'font-awesome-rails' 20#haml適応 21gem 'haml-rails' 22gem 'erb2haml' 23#devise系 24gem 'devise' 25 26 27group :development, :test do 28 gem 'byebug', platform: :mri 29 gem 'faker' 30 gem 'rspec-rails', "~> 3.1.0" 31 gem 'factory_girl_rails', "~> 4.4.1" 32 gem 'rails-controller-testing' 33end 34 35group :development do 36 gem 'web-console', '>= 3.3.0' 37 gem 'listen', '~> 3.0.5' 38 gem 'spring' 39 gem 'spring-watcher-listen', '~> 2.0.0' 40 gem 'erb2haml' 41 gem 'test-unit' 42 gem 'pry-rails' 43 gem 'carrierwave', '~> 1.2', '>= 1.2.3' 44 gem 'rake', '< 11.0' 45 gem 'simplecov' 46end

##補足
ちなみにmessage_rspec.rbの部分を全て消すとbundle exec rspecは通ります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takumiabe

2018/10/04 16:36

Gemfileを見せてください。
hidekie

2018/10/04 16:40

こちらになります!
takumiabe

2018/10/04 16:49

あ。質問本文に追記するとよいです。コメント欄は改行きかないです
hidekie

2018/10/04 16:52

すいません、本文にもう一度載せておきます!
guest

回答1

0

ベストアンサー

追記ありがとうございます。

Gemfileのここですが

gem 'carrierwave', '~> 1.2', '>= 1.2.3'

group :development do...

の中にあるために、development環境でしかロードされません。
rspecはtest環境で動くため、ロードができない、というエラーになってしまっているようです。

carrierwaveは、開発、テスト、本番すべてで使うと思うので、
groupの外に、ベタで書くのが正しいと思います。

あと、余談ですが、
他には、simplecovは、gem 'simplecov', require: false, group: :testと定義しなければならないと、公式に書かれています。

投稿2018/10/04 16:59

takumiabe

総合スコア661

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidekie

2018/10/05 05:46

解決しました、不注意からのミスだったんですね! ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問