Rspec测试加载错误:无法加载这样的文件 - spec_helper(LoadError)

Rspec测试加载错误:无法加载这样的文件 - spec_helper(LoadError)

问题描述:

我正在关注RSpec测试的一章,但我不断收到load errorRspec测试加载错误:无法加载这样的文件 - spec_helper(LoadError)

它告诉我先创建一个新分支,然后再创建两个新目录:ModelsSpec。在这些目录中,我应该创建两个文件; models/entry.rbspec/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

仔细检查您是从app目录的根目录运行rspec spec/entry_spec.rb,而不是从spec目录中运行。

Rspec自动将spec添加到加载路径。如果您已经在spec目录中,则rspec会将spec/spec添加到加载路径中。

+0

嘿谢谢我在意外时做的答案。所以谢谢你让我更近一步我真的很感激它! –

首先确保你已经正确安装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 

这样,当你运行日常的Rails发电机的RSpec如rails g model entry它也会为你创建spec文件。

请注意,旧版本的rspec-rails将会是require 'spec_helper',而在当前版本中,您将使用require 'rails_helper',因为它将通用RSpec配置和rails设置分割为两个独立的文件。

+0

嘿最大的问题。所以我有人克隆我的回购,并在他们的计算机上运行测试,并rspec测试工作。但是,当我完全重新安装rvm,ruby和rails时,我仍然遇到同样的错误。即使尝试你的建议,我也会得到同样的错误。那么你认为我的电脑上可能安装了一些奇怪的东西吗? PS。感谢您的迅速回答! –