Ошибка при попытке запустить 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