前提・実現したいこと
rails tutorial第3章のTestのところで、Rails testのコマンドを打つとエラーが出て失敗してしまいます。諸々Webページを調べましたが、何とも原因が分からず困っております。詳しい方いらっしゃいましたら、アドバイス頂けますと大変有難いです。
よろしくお願いします。
発生している問題・エラーメッセージ
$ rails test C:/Users/○○○○/OneDrive/デスクトップ/ruby_lesson/helo_app/test/controllers/static_pages_controller_test.rb:1:in `require': cannot load such file -- test_helper (LoadError) from C:/Users/○○○○/OneDrive/デスクトップ/ruby_lesson/helo_app/test/controllers/static_pages_controller_test.rb:1:in `<top (required)>' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/test_unit/runner.rb:50:in `require' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/test_unit/runner.rb:50:in `block in load_tests' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/test_unit/runner.rb:50:in `each' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/test_unit/runner.rb:50:in `load_tests' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/test_unit/runner.rb:39:in `run' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/commands/test/test_command.rb:38:in `perform' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/thor-0.20.3/lib/thor/command.rb:27:in `run' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/command/base.rb:63:in `perform' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/command.rb:44:in `invoke' from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/railties-5.1.6/lib/rails/commands.rb:16:in `<top (required)>' from bin/rails:4:in `require' from bin/rails:4:in `<main>'
該当のソースコード
ソースコード
試したこと
「そのようなファイルをロードできません-test_helper」とエラーが出てしまいます。
チュートリアルに沿ってやっているので、それ以上のことは知識がなく、他のサイト等も探してみましたがpathが違ったなどの
内容で何とも分からず手立てが出来ていないです。よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
まず、
cannot load such file -- test_helper
を日本語訳できますか?
訳せないなら「訳せません」と追記してください。
訳せるなら、なぜそのようなエラーが出るか、心当たりを探して思いつく解決策を試し、「試したこと」に追記してください。
test_helper.rb というファイルはありますか?
ないなら、チュートリアルでこのファイルを作るステップを飛ばしている可能性があります。
存在しているならば、require で読み込む際のパスが合っているかを確認してください。
2KOH様
アドバイスありがとうございます。
test_helper.rbはありまして、この中には以下の内容になっております。
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
・
・
この二つのreqiireのパスがなにか関係するのでしょうか?
まだまだ初学者でして、申し訳ないですが余り理解が出来ておりません。
ls して、test_helper.rb が表示されますか?
otn様
コメントありがとうございます。
ls しますと、
$ ls
static_pages_controller_test.rb となります。
cdしてディレクトリ/test/controllersにて行いました。
test_helper.rbは、systemディレクトリ直下にあるのですが、
systemディレクトリへcdしてlsしますと、yesy_helper.rbが
パスに出てこないです。
??
rails s
したディレクトリで ls しないと意味ないです。
そこに test_helper.rb がないのでは?なので、エラーです。
rails sを行ったディレクトリでlsしますと、以下のようなファイル群になります。
$ ls
app/ config/ db/ Gemfile.lock log/ public/ README.md tmp/
bin/ config.ru Gemfile lib/ package.json Rakefile test/ vendor/
確かにここには、test_helper.rbは存在していません。
どうしてこんなことが起こっているのでしょうか・・・。
> どうしてこんなことが起こっているのでしょうか・・・。
そこにそのファイルを置いていないからでは?
もしくは、間違ったディレクトリで、rails s コマンドを入れてしまった。正しいディレクトリでやりましょう。
同じディレクトリで、rails serverはやっていますので、そのファイルが違う所に配置されたという事なんでしょうか。。。
チュートリアルの指示通りやっていたのですが・・。
これは、rails newからやり直すほうが良いのでしょうか?
> チュートリアルの指示通りやっていたのですが・・。
指示通りやってないから、エラーが出ています。
確かにそういうことになりますよね。
ちょっと途中まで戻って、やり直してみます。
アドバイスありがとうございました。
回答3件
あなたの回答
tips
プレビュー