尝试运行rspec时出错:`require':无法加载这样的文件 – rails_helper(LoadError)

我正在尝试运行Ruby on Rails的rspec。 我正在运行Rails 4.1.1。 我已经安装了gem,已经build立了一些testing的规格文件夹。 我通过$ rails g rspec:install创build了一个目录

我试图通过$ rake db:test:prepare创build一个testing数据库$ 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. 

所以我最终看着这个堆栈溢出post ,而这两个选项,工作的是:

 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) 

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

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

更改

 require 'rails_helper' 

 require 'spec_helper' 

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

对于V3:

如果有人使用rspec V3,那么发生器不运行时会发生类似的错误。 所以在尝试任何运行生成器。

 rails generate rspec:install 

如果你在控制台上得到了一个巨大的警告列表。 那么你需要从.rspec文件中删除--warnings

我其实只是有rspec 3的轨道4上的这个错误,但在我的情况下,我忘了运行生成器:

 rails generate rspec:install 

另外,我必须删除.rspec warnings ,正如rps开发人员所述

一个可行的办法是确保你需要spec_helper 。 RubyMine可以默认需要rspec ,这有时会导致这个错误。

有时你需要从Project的父目录运行rspec命令

我有同样的错误,但没有任何地方rails_helper引用,我们甚至没有使用rails。

然而,我最终发现,我的~/.rspec需要rails_helper (大概是从过去创buildrails应用程序),这是造成这个问题…

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

修复和删除该行一样简单。 希望这可以帮助别人解决同样的问题!

对我来说,问题是由于不同的“rspec支持”版本加载和激活。 我通过预先“bundle exec”来解决:

 bundle exec rspec 

这些build议没有在我的Rails 4.2.0 rspec-rails 3.2.3上工作。

相反,我在规格文件的顶部放置了以下两行:

 require 'rails_helper' require 'spec_helper' 

现在我可以执行rspec spec/features/my_spec.rb

运行控制器testing时,我得到了你所描述的错误。 但是,当我运行模型testing时,我得到了真正的错误。 它结束了说错误发生,因为我的数据库没有被迁移。 我通过运行这个命令修复了错误

rake db:test:prepare

我只是重新打开一个新的terminalshell的作品。

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

 rspec --init 

创build.rspecspec/spec_helper.rb

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