web-dev-qa-db-ja.com

rspecを実行しようとしたときのエラー: `require ':そのようなファイルをロードできません-Rails_helper(LoadError)

RailsでRubyのrspecを実行しようとしています。 Rails 4.1.1を実行しています。 gemをインストールし、いくつかのテストでspecフォルダーを確立しました。 $ Rails g rspec:installを使用してディレクトリを作成しました

$ rake db:test:prepareを使用してテストデータベースを作成しようとしましたが、次のエラーメッセージがスローされます。

WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test 
schema automatically, see the release notes for details.

そこで、私は このスタックオーバーフローポスト を見てしまいました。2つのオプションのうち、機能したのは次のとおりです。

rake db:schema:load Rails_ENV=test 

したがって、今、rspecを実行する必要があります。

コマンドラインから$ rspec specを実行すると、次のエラーが表示されます。

/Users/myname/.rbenv/versions/2.1.1/lib/Ruby/2.1.0/rubygems/core_ext/
kernel_require.rb:55:in `require': cannot load such file -- Rails_helper (LoadError)

これを解決してテストの実行を開始するにはどうすればよいですか?

58
HPJAJ

Rspec V3にはいくつかの問題があります。しかし、あなたの場合はV2を使用しています。

変化する

require 'Rails_helper'

require 'spec_helper'

その他の説明はこちらをご覧ください https://teamtreehouse.com/forum/problem-with-rspec

V3の場合:

誰かがrspec V3を使用している場合、ジェネレータが実行されていないときに同様のエラーが発生します。そのため、何かを試す前にジェネレーターを実行します。

Rails generate rspec:install

コンソールに大量の警告リストが表示される場合。次に、--warningsファイルから.rspecを削除する必要があります。

69
Dipak Gupta

私は実際にrspec 3のRails 4でこのエラーが発生しましたが、私の場合、ジェネレーターを実行するのを忘れていました。

Rails generate rspec:install

また、warnings.rspecから削除する必要がありました。これは rpsec開発者の1人が述べた

59
fotanus

私にとって、この問題は、異なる「rspec-support」バージョンがロードされ、アクティブ化されたことが原因でした。 「バンドルexec」を先頭に追加して解決しました。

bundle exec rspec
8
Daniel Loureiro

新しいバージョン(3.5)では、ジェネレーターを実行する必要がある場合、Rails generate rspec:installは機能しません。私が使用した:

rspec --init

.rspecおよびspec/spec_helper.rbを作成します。

編集:念のため、Rails用ではなくRuby用のrspec gemをインストールしたことがわかったので、rspec:installは使用できませんでした。 https://github.com/rspec/rspec-Rails を使用する必要があります。

5
Hans Araya

同じエラーが発生しましたが、Rails_helperへの参照はどこにもなく、Railsも使用していませんでした。

しかし、最終的に~/.rspecRails_helperを必要としていることがわかり(過去にRailsアプリを作成したためと思われます)、これが問題の原因でした...

$ cat ~/.rspec
--color
--format documentation
--require spec_helper
--require Rails_helper

修正は、その行を削除するのと同じくらい簡単です。これが他の誰かが同じ問題に取り組むのに役立つことを願っています!

3
daveharris

Rails 4.2.0とrspec-Rails 3.2.3では、これらの提案はどれもうまくいきませんでした。

代わりに、スペックファイルの先頭に次の2行を配置しました。

require 'Rails_helper'
require 'spec_helper'

これで、rspec spec/features/my_spec.rbを実行できます。

2
mycargus

Projectの親ディレクトリからrspecコマンドを実行する必要がある場合があります

2
toki

私のために働いた可能性の1つは、spec_helperが必要であることを確認することです。 RubyMineはデフォルトでrspecを必要とする場合があり、このエラーが発生する場合があります。

2

誰かのため。特定のファイルをテストしようとしたときにそのエラーが発生した場合。あなたはこれが好きかもしれません

$ bundle exec rspec ./spec/features/user_login_spec.rb
$ bundle exec rspec ./spec/models/user_login_spec.rb
0

また、ファイルの名前が間違っている可能性もあります。 _spec.rbで終わっていることを確認してください。 _soec.rbで終わるファイルのスペルを間違えていましたが、しばらく頭を悩ませていました...

0
mr.musicman

プロジェクトのルートからrspecまたはbundle exec rspecを実行することを常に忘れないでください。何かのようなもの:

bundle exec rspec spec/features/file_test_spec.rb
0
Leandro Castro

コントローラテストの実行時に説明したエラーが表示されました。ただし、モデルテストを実行すると、真のエラーが発生しました。データベースが移行されなかったためにエラーが発生したと言ってしまいました。このコマンドを実行してエラーを修正しました...

rake db:test:prepare

0
thedanotto