简体   繁体   中英

Error when trying to run rspec: `require': cannot load such file — rails_helper (LoadError)

I am trying to run rspec for Ruby on Rails. I am running Rails 4.1.1. I have installed the gem, have established a spec folder with some tests. I have created a directory through $ rails g rspec:install

I tried to create a testing database through $ rake db:test:prepare but it throws this error message:

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

So I ended up looking at this stack overflow post , and of the two options, the one that worked was:

rake db:schema:load RAILS_ENV=test 

So, now I need to run rspec .

When I run $ rspec spec from the command line I get this error:

/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)

How do I resolve this so that I can start running tests?

There is some problem with rspec V3. But in your case you are using V2.

change

require 'rails_helper'

to

require 'spec_helper'

Other description find here https://teamtreehouse.com/forum/problem-with-rspec

For V3 :

If someone using rspec V3 then similar error occurs when generator not run. So before trying anything run generator.

rails generate rspec:install

If you are getting a huge list of warning on your console. Then you need to remove --warnings from .rspec file.

I actually just had this error on rails 4 with rspec 3, but in my case I forgot to run the generator:

rails generate rspec:install

Also I had to remove warnings from .rspec , as stated by one of rpsec developers

For me, the problem was due to a different "rspec-support" version loaded and activated. I solved by prepending a "bundle exec":

bundle exec rspec

For newer versions (3.5), if you need to run the generator, rails generate rspec:install doesn't work for me. I used:

rspec --init

Creates .rspec and spec/spec_helper.rb .

EDIT: Just in case, I found out that I installed rspec gem for ruby, not the one for Rails, so rspec:install wasn't available. Should use https://github.com/rspec/rspec-rails .

有时您需要从项目的父目录运行 rspec 命令

None of these suggestions worked for me on Rails 4.2.0 with rspec-rails 3.2.3.

Instead, I placed the following two lines at the top of my spec file:

require 'rails_helper'
require 'spec_helper'

Now I can execute rspec spec/features/my_spec.rb .

I had the same error but there was no reference to rails_helper anywhere and we weren't even using rails.

However, I eventually found that my ~/.rspec was requiring rails_helper (presumably from creating rails app in the past) which was causing the issue ...

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

The fix is as simple as removing that line. Hope this helps someone else grappling with the same issue!

One possibility that worked for me is to make sure you're requiring spec_helper . RubyMine can default require rspec and this can sometimes lead to this error.

Always remember to run the rspec or the bundle exec rspec from the root of your project. Something like:

bundle exec rspec spec/features/file_test_spec.rb

Please install the following gem:

gem install 'rspec-rails'

And then run: rails generate rspec:install

This will generate the spec folder and rails_helper.rb and spec_helper.rb . Your error should be taken care once this is done.

I got the error you described when running a controller test. However, when I ran a model test, I got the true error. it ended up saying that the error was occuring because my database wasn't migrated. I fixed the error by running this command...

rake db:test:prepare

You may also have your file named incorrectly. Make sure it ends in _spec.rb . I had misspelled my file to end in _soec.rb and was scratching my head for a while...

For someone. If you got that error when you trynna test a specific file. you might can like this

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM