2016-02-05 3 views
3

Я следую главе по тесту RSpec, но я продолжаю получать load error.Ошибка загрузки Rspec: невозможно загрузить такой файл - spec_helper (LoadError)

Сначала мне нужно создать новую ветку, затем создать два новых каталога: Models и Spec. В этих каталогах я должен сделать два файла; models/entry.rb и spec/entry_spec.rb. В spec/entry_spec.rb, я должен ввести этот код:

require_relative '../models/entry' 


RSpec.describe Entry do 

end 

Тогда в моем models/entry.rb я должен поставить этот код:

class Entry 

end 

Я тогда предполагается запустить эту команду терминала:

$ rspec spec/entry_spec.rb 

И получить этот результат:

No examples found. 

Finished in 0.00015 seconds (files took 0.1186 seconds to load) 
0 examples, 0 failures 

Но я всегда получаю эту ошибку нагрузки, хотя и я понятия не имею, что это значит

/Users/ethanfranson/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- spec_helper (LoadError) 
    from /Users/ethanfranson/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/configuration.rb:1295:in `block in requires=' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/configuration.rb:1295:in `each' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/configuration.rb:1295:in `requires=' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/configuration_options.rb:109:in `block in process_options_into' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/configuration_options.rb:108:in `each' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/configuration_options.rb:108:in `process_options_into' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/configuration_options.rb:21:in `configure' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/runner.rb:105:in `setup' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/runner.rb:92:in `run' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/runner.rb:78:in `run' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/lib/rspec/core/runner.rb:45:in `invoke' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/gems/rspec-core-3.4.2/exe/rspec:4:in `<top (required)>' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/bin/rspec:23:in `load' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/bin/rspec:23:in `<main>' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `eval' 
    from /Users/ethanfranson/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `<main>' 

Если кто захочет взять время, чтобы помочь мне через Что я могу делать неправильно, я был бы очень признателен Это. Извините за длинный вопрос!

+0

У вас есть файл 'spec_helper'? –

+1

Из какого каталога вы используете спецификации? корневой каталог приложения или каталога спецификаций? – harshs08

ответ

2

Дважды проверьте, что вы используете rspec spec/entry_spec.rb из корневого каталога приложения, а не из каталога spec.

Rspec автоматически добавляет spec к пути загрузки. Если вы уже находитесь в каталоге spec, то rspec собирается добавить spec/spec в путь загрузки.

+0

Эй, спасибо за ответ, я тоже делал это по аварии.Так что спасибо за то, что помогли мне на шаг ближе, я действительно ценю это! –

2

Сначала убедитесь, что вы правильно установили RSpec-рельсы:

rails g rspec:install 

Вам не нужно требовать вам файлы модели или любые другие файлы в /app по этому вопросу. Они автоматически загружаются, когда вам требуется rails_helper.

# spec/models/entry_spec.rb 
require 'rails_helper' 
RSpec.describe Entry do 

end 

RSpec может генерировать эту спецификацию для вас:

rails generate rspec:model entry 

Вы должны также установки генераторов в вашем config/application.rb:

# ... 
config.generators do |g| 
    g.test_framework :rspec 
end 

Таким образом, при выполнении регулярных рельсов генераторы RSpec например, rails g model entry, он также создаст для вас файлы спецификаций.

Обратите внимание, что в старых версиях rspec-rails вы должны были бы require 'spec_helper', а в текущей версии вы использовали бы require 'rails_helper', так как он разделяет общую конфигурацию RSpec и настройку рельсов на два отдельных файла.

+0

Эй вопрос. Поэтому у меня был кто-то, клонировавший мое репо, и запустил тест на своем компьютере, и тест rspec работал. Однако, когда я полностью переустановил, rvm, ruby ​​и rails, я все равно получаю ту же ошибку. Даже попробовав то, что вы предложили, я получаю ту же ошибку. Как вы думаете, я мог бы что-то странное установить или не установить на моем компьютере, что мешает ему работать? Ps. Спасибо за ваш быстрый ответ! –

Смежные вопросы