繁体   English   中英

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

[英]Error when trying to run rspec: `require': cannot load such file — rails_helper (LoadError)

我正在尝试为 Ruby on Rails 运行 rspec。 我正在运行 Rails 4.1.1。 我已经安装了 gem,已经建立了一个带有一些测试的规范文件夹。 我通过$ 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.

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

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)

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

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 的 rails 4 上遇到了这个错误,但就我而言,我忘记运行生成器:

rails generate rspec:install

我还必须从.rspec删除warnings ,正如rpsec 开发人员之一所说

对我来说,问题是由于加载和激活了不同的“rspec-support”版本。 我通过添加一个“bundle exec”来解决:

bundle exec rspec

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

rspec --init

创建.rspecspec/spec_helper.rb

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

有时您需要从项目的父目录运行 rspec 命令

这些建议对我在 Rails 4.2.0 和 rspec-rails 3.2.3 上都不起作用。

相反,我将以下两行放在我的规范文件的顶部:

require 'rails_helper'
require 'spec_helper'

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

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

但是,我最终发现我的~/.rspec需要rails_helper (大概是从过去创建 rails 应用程序)导致问题......

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

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

对我spec_helper一种可能性是确保您需要spec_helper RubyMine 可以默认需要rspec ,这有时会导致此错误。

永远记住从项目的根目录运行rspecbundle exec rspec 就像是:

bundle exec rspec spec/features/file_test_spec.rb

请安装以下 gem:

gem install 'rspec-rails'

然后运行: rails generate rspec:install

这将生成 spec 文件夹和rails_helper.rbspec_helper.rb 完成此操作后,应注意您的错误。

我在运行控制器测试时遇到了您描述的错误。 然而,当我进行模型测试时,我得到了真正的错误。 它最终说发生错误是因为我的数据库没有迁移。 我通过运行此命令修复了错误...

rake db:test:prepare

您的文件名称也可能不正确。 确保它以_spec.rb 我拼错了我的文件以_soec.rb结尾, _soec.rb一阵子......

给某人。 如果您在尝试测试特定文件时遇到该错误。 你可能会喜欢这个

$ bundle exec rspec ./spec/features/user_login_spec.rb
$ bundle exec rspec ./spec/models/user_login_spec.rb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM