尝试运行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.rspec
和spec/spec_helper.rb
。
编辑:为了以防万一,我发现我安装rspecgemruby,而不是一个为Rails,所以rspec:安装不可用。 应该使用https://github.com/rspec/rspec-rails 。