🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

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

Ruby

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

Q&A

解決済

1回答

501閲覧

ローカル環境で勉強していたRails TutorialをCloud9に移行すると、rails testをした時にエラーが出るようになりました。

sassan738

総合スコア32

Ruby on Rails 5

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

Ruby

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

0グッド

1クリップ

投稿2019/10/02 03:18

編集2019/10/02 21:05

いままでwindows上のローカル環境でRails Tutorialを勉強していたのですが、windowsをアップデートしたところエラーが出るようになってしまったため、Cloud9に今まで進めていたsample app(現在第12章終了時点です)をBitbucketからコピーしてきました。
Git cloneでCloud9上にコピーして、
bundle install --without production
rails db:migrate
rails test
と実行したところで以下のようなメッセージが出ました。

ec2-user:~/rails-tutorial/sample_app09 (master) $ rails test Running via Spring preloader in process 17421 Started with run options --seed 43192 41/41: [=============================================================================================================] 100% Time: 00:00:07, Time: 00:00:07 Finished in 7.13687s 41 tests, 188 assertions, 0 failures, 0 errors, 0 skips Traceback (most recent call last): 34: from -e:1:in `<main>' 33: from /home/ec2-user/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 32: from /home/ec2-user/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 31: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>' 30: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/spring-2.0.2/lib/spring/application.rb:135:in `run' 29: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop' 28: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run' 27: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/spring-2.0.2/lib/spring/application.rb:171:in `serve' 26: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/spring-2.0.2/lib/spring/application.rb:171:in `fork' 25: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/minitest-5.10.3/lib/minitest.rb:63:in `block in autorun' 24: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/railties-5.1.2/lib/rails/test_unit/minitest_plugin.rb:77:in `run' 23: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/minitest-5.10.3/lib/minitest.rb:141:in `run' 22: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/minitest-5.10.3/lib/minitest.rb:687:in `report' 21: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/minitest-5.10.3/lib/minitest.rb:687:in `each' 20: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/guard-minitest-2.4.4/lib/guard/minitest/reporter.rb:10:in `report' 19: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/guard-minitest-2.4.4/lib/guard/minitest/notifier.rb:31:in `notify' 18: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/guard-compat-1.2.1/lib/guard/compat/plugin.rb:113:in `notify' 17: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/guard-2.13.0/lib/guard/notifier.rb:31:in `notify' 16: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/guard-2.13.0/lib/guard/notifier.rb:11:in `connect' 15: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier.rb:42:in `connect' 14: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier.rb:42:in `new' 13: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier.rb:87:in `initialize' 12: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier.rb:198:in `_activate' 11: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier.rb:180:in `_detect_or_add_notifiers' 10: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/detected.rb:59:in `detect' 9: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/detected.rb:59:in `each' 8: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/detected.rb:60:in `block in detect' 7: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/detected.rb:60:in `detect' 6: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/detected.rb:60:in `each' 5: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/detected.rb:62:in `block (2 levels) in detect' 4: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/detected.rb:100:in `_add' 3: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/detected.rb:100:in `new' 2: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/base.rb:59:in `initialize' 1: from /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/tmux.rb:69:in `_check_available' /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/notiffany-0.1.1/lib/notiffany/notifier/tmux/client.rb:12:in `version': undefined method `[]' for nil:NilClass (NoMethodError)

テスト自体は正常に実行できているのですが、Traceback(most recent call last):というメッセージ以降が今までなかったもので何が原因か分かりません。

また、rails serverを実行してブラウザを開くと、新しいタブにはsample appのページが表示されるのですが、Cloud9上のブラウザーセクションには「接続が拒否されました」と出て表示されません。
イメージ説明
分かる方がいらっしゃったら教えてください。よろしくお願いします。

回答頂いたgemfileの内容は以下の通りです。testの中にguardが含まれています。

source 'https://rubygems.org' gem 'rails', '5.1.2' gem 'bootstrap-sass', '3.3.7' gem 'bcrypt', '3.1.11' gem 'faker', '1.7.3' gem 'will_paginate', '3.1.6' gem 'bootstrap-will_paginate', '1.0.0' gem 'puma', '3.9.1' gem 'sass-rails', '5.0.6' gem 'uglifier', '3.2.0' gem 'coffee-rails', '4.2.2' gem 'jquery-rails', '4.3.1' gem 'turbolinks', '5.0.1' gem 'jbuilder', '2.7.0' group :development, :test do gem 'sqlite3', '1.3.13' gem 'byebug', '9.0.6', platform: :mri end group :development do gem 'web-console', '3.5.1' gem 'listen', '3.0.8' gem 'spring', '2.0.2' gem 'spring-watcher-listen', '2.0.1' end group :test do gem 'rails-controller-testing', '1.0.2' gem 'minitest-reporters', '1.1.14' gem 'guard', '2.13.0' gem 'guard-minitest', '2.4.4' end group :production do gem 'pg', '0.18.4' end # Windows環境ではtzinfo-dataというgemを含める必要があります gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

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

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

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

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

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

gouf

2019/10/02 05:36

Gemfile に guard は定義されていますか? Gemfile の内容は質問欄に追記可能ですか?
sassan738

2019/10/02 21:13

回答頂きありがとうございます。 guardが定義されています。Gemfileに関して意見を頂いたので、先ほど第3章のGemfileに関する所の解説動画を見ていたのですが、bundle install --without productionではなく、bundle updateコマンドを使用していて、bundle updateを実行してみたところrails testが正常に走りました。一応これで解決になりそうです。ありがとうございます。
guest

回答1

0

ベストアンサー

記載されたエラーメッセージの1行目より、

tmux/client.rb:12:in version': undefined method []' for nil:NilClass (NoMethodError)

上記内容で検索したところ、参考になりそうなQiita記事を見つけました。

rails test でエラーが出た時の対処法(Rails Tutorial)

Qiita記事からの引用ですが、

Cloud9を使っている場合は、Guardの通知を有効にするためにtmuxをインストールする必要があります。Cloud9をお使いの場合は次のコマンドでtmuxをインストールしてください。

対処法として、

sudo yum install -y tmux
を実行してtmuxをインストールすれば解決します。

とのことです。tmuxと呼ばれる端末多重化ソフトウェアをインストールする必要があるようです。

goufさんのご指摘のように、Gemfileにgurdが定義されていないことが要因?なのかもしれません。

手元の開発環境で確認していないため、確定した情報をお伝えできませんが、エラー対応のヒントになれば幸いです。

投稿2019/10/02 11:37

kenkenbbb

総合スコア17

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

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

sassan738

2019/10/02 21:48

回答頂きありがとうございます。goufさんへの返信にも書いたのですが、Rails Tutorialの解説動画の中でbundle install --without productionではなくbundle updateを実行していて、bundle updateを行ったところ正常にtestが走りました。 Guardというのがテスト自動化のためのgemでそれをCloud9上で実行するためにtmuxというのをインストールする必要があったみたいです。第3章の内容で少し発展的な実装だったのでまあいいかと思ってスルーしてたのですが、Cloud9に引越ししたことで問題が浮上したようです。 こちらも設定いたしました。回答頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問