Guard + Zeus + Rspec-Rails:Rspec:Module的未定义方法'configure'

时间:2014-09-19 18:06:19

标签: ruby-on-rails rspec guard zeus

我正在使用以下内容:

Rails 4.1.1
guard-zeus 2.0.0
rspec-rails 3.0.1

开箱即用的默认rails g rspec:installguard init

当我运行guard并保存spec文件时,我收到错误:

undefined method `configure` for RSpec:Module (NoMethodError)

我可以使用rspec specrake运行规格就好了。

spec_helper中,如果我在配置块之前require 'rspec/rails, 后卫工作正常,但rspec spec因错误而失败:

uninitialized constant ActiveSupport::Autoload (NameError)

我猜这个加载顺序存在问题rails_helperspec_helper 分开了。

两个问题:

  1. 我该如何解决这个问题?
  2. 是否有一个不同的持续集成解决方案 local ,您可以推荐使用最新的Rails和Rspec。
  3. 你只需要回答一个问题。

4 个答案:

答案 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)

您应该将以下要求添加到文件顶部spec_helper.rb

require 'rspec/rails'

在此处参考:Zeus GitHub issue 308