Ошибка при попытке запустить rspec: `require ': невозможно загрузить такой файл - rails_helper (LoadError)

Я пытаюсь запустить rspec для Ruby on Rails. Я запускаю Rails 4.1.1. Я установил драгоценный камень, установил папку спецификации с некоторыми тестами. Я создал каталог через $ 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.

Итак, я закончил поиск этого потока, и из двух параметров, который работал:

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)

Как мне решить эту проблему, чтобы начать запуск тестов?

Ответ 1

Существует некоторая проблема с 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.

Ответ 2

У меня на самом деле была эта ошибка на рельсах 4 с rspec 3, но в моем случае я забыл запустить генератор:

rails generate rspec:install

Также мне пришлось удалить warnings из .rspec, как заявленный одним из разработчиков rpsec

Ответ 3

Для меня проблема возникла из-за загрузки и активации другой версии "rspec-support". Я решил, добавив "bundle exec":

bundle exec rspec

Ответ 4

Для более новых версий (3.5), если вам нужно запустить генератор, rails generate rspec:install не работает для меня. Я использовал:

rspec --init

Создает .rspec и spec/spec_helper.rb.

EDIT: На всякий случай, я узнал, что я установил rspec gem для ruby, а не для Rails, поэтому rspec: install не был доступен. Следует использовать https://github.com/rspec/rspec-rails.

Ответ 5

У меня была такая же ошибка, но в rails_helper не было ссылки, и мы даже не использовали рельсы.

Однако в итоге я обнаружил, что для моего ~/.rspec требуется rails_helper (предположительно, от создания приложения rails в прошлом), что вызывало проблему...

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

Исправление выполняется так же просто, как удаление этой строки. Надеюсь, это поможет кому-то еще схватиться с той же проблемой!

Ответ 6

Одна из возможностей, которая сработала для меня, - убедиться, что вам требуется spec_helper. RubyMine может по умолчанию требовать rspec, и это иногда может привести к этой ошибке.

Ответ 7

Иногда вам нужно запустить команду rspec из родительского каталога Project

Ответ 8

Ни одно из этих предложений не работало для меня на Rails 4.2.0 с rspec-rails 3.2.3.

Вместо этого я разместил следующие две строки в верхней части моего спецификационного файла:

require 'rails_helper'
require 'spec_helper'

Теперь я могу выполнить rspec spec/features/my_spec.rb.

Ответ 9

Я получил описанную вами ошибку при запуске теста контроллера. Однако, когда я запускал модельный тест, я получил истинную ошибку. он закончил тем, что сказал, что ошибка произошла из-за того, что моя база данных не была перенесена. Я исправил ошибку, выполнив эту команду...

rake db:test:prepare

Ответ 10

Я просто открываю новую оболочку терминала.

Ответ 11

Возможно, вы также неправильно указали свой файл. Убедитесь, что он заканчивается на _spec.rb. У меня был с ошибкой мой файл, чтобы он закончился в _soec.rb и _soec.rb царапал мне голову...

Ответ 12

Для кого-то. Если вы получили эту ошибку при попытке проверить определенный файл. вам может понравиться это

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

Ответ 13

Всегда не забывайте запускать rspec или bundle exec rspec из корня вашего проекта. Что-то вроде:

bundle exec rspec spec/features/file_test_spec.rb