我正在使用以下内容:
Rails 4.1.1
guard-zeus 2.0.0
rspec-rails 3.0.1
开箱即用的默认rails g rspec:install
和guard init
当我运行guard
并保存spec文件时,我收到错误:
undefined method `configure` for RSpec:Module (NoMethodError)
我可以使用rspec spec
和rake
运行规格就好了。
在spec_helper
中,如果我在配置块之前require 'rspec/rails
,
后卫工作正常,但rspec spec
因错误而失败:
uninitialized constant ActiveSupport::Autoload (NameError)
我猜这个加载顺序存在问题rails_helper
和spec_helper
分开了。
两个问题:
你只需要回答一个问题。
答案 0 :(得分:4)
以下对我的解决方法:
#spec/spec_helper.rb
require 'rspec/core'
答案 1 :(得分:2)
快速回答可能是问题的答案。您的spec_helper文件应具有以下顺序:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
在配置/环境需要之后,需要输入rspec / rails。
答案 2 :(得分:2)
以下内容:
undefined method `configure` for RSpec:Module (NoMethodError)
暗示你错过了
require 'rspec'
这通常是不必要的,但是如果你把它放在应该有效的spec/spec_helper.rb
中。
(如果您直接运行RSpec,它已包含在RSpec中)。
未包含的原因可能是:
你没有通过捆绑器
或您的Gemfile没有:
gem 'rspec' # without the require: false
您的.rspec
文件(应该存在)可能有问题
require 'rspec/rails'
可能会进入spec/rails_helper.rb
...
...但更好的方法是更新你的rspec-rails gem并运行:
rails generate rspec:install
如果您被提示,请使用' d'差异(理想情况下使用建议的更改)。
答案 3 :(得分:1)