尝试运行rspec时出错:`require':无法加载此类文件 - rails_helper(LoadError)

HPJ*_*JAJ 59 command-line rspec ruby-on-rails

我正在尝试为Ruby on Rails运行rspec.我正在运行Rails 4.1.1.我已经安装了gem,已经建立了一些带有一些测试的spec文件夹.我已经创建了一个目录$ 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.
Run Code Online (Sandbox Code Playgroud)

所以我最终看到了这个堆栈溢出帖子,以及两个选项中,有效的是:

rake db:schema:load RAILS_ENV=test 
Run Code Online (Sandbox Code Playgroud)

所以,现在我需要运行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)
Run Code Online (Sandbox Code Playgroud)

我如何解决这个问题,以便我可以开始运行测试?

Dip*_*pta 70

rspec V3存在一些问题.但在你的情况下,你正在使用V2.

更改

require 'rails_helper'
Run Code Online (Sandbox Code Playgroud)

require 'spec_helper'
Run Code Online (Sandbox Code Playgroud)

其他描述在这里找到https://teamtreehouse.com/forum/problem-with-rspec

对于V3:

如果有人使用rspec V3,那么当发电机未运行时会发生类似的错误.所以在尝试之前运行发电机.

rails generate rspec:install
Run Code Online (Sandbox Code Playgroud)

如果您在控制台上收到大量警告列表.然后你需要--warnings.rspec文件中删除.


fot*_*nus 60

我实际上只是在带有rspec 3的rails 4上出现了这个错误,但在我的情况下我忘了运行生成器:

rails generate rspec:install
Run Code Online (Sandbox Code Playgroud)

此外,我不得不删除warnings.rspec,如由rpsec开发商说


Dan*_*iro 10

对我来说,问题是由于加载和激活了不同的"rspec-support"版本.我解决了前缀"捆绑exec":

bundle exec rspec
Run Code Online (Sandbox Code Playgroud)


Lea*_*tro 6

始终记住从项目的根目录运行 rspec或。bundle exec rspec就像是:

bundle exec rspec spec/features/file_test_spec.rb
Run Code Online (Sandbox Code Playgroud)


Han*_*aya 5

对于较新的版本(3.5),如果您需要运行生成器,rails generate rspec:install则对我不起作用.我用了:

rspec --init
Run Code Online (Sandbox Code Playgroud)

创造.rspecspec/spec_helper.rb.

编辑:以防万一,我发现我为ruby安装了rspec gem,而不是Rails的那个,所以rspec:install不可用.应该使用https://github.com/rspec/rspec-rails.