后卫+宙斯+ Rspec的摆幅:为Rspec的未定义的方法“配置”:模块(Guard + Zeus

2019-10-21 00:49发布

我使用的是以下情况:

Rails 4.1.1
guard-zeus 2.0.0
rspec-rails 3.0.1

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

当我运行guard和保存规范文件,我得到的错误:

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. 是否有持续集成不同的解决方案在本地 ,你可以推荐使用最新的Rails和RSpec的作品。

你只需要回答一个问题。

Answer 1:

下面的修复对我说:

#spec/spec_helper.rb
require 'rspec/core'


Answer 2:

抛出一个快速的答案,可能是这个问题。 你spec_helper文件应该有下面的命令:

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'

RSpec的/导轨需要被需要的配置/环境要求后。



Answer 3:

下列:

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 generate rspec:install

如果系统提示您 - 用“d”,以差异(理想情况下使用推荐的变化)。



Answer 4:

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

require 'rspec/rails'

这里以参考: 宙斯GitHub的问题308



文章来源: Guard + Zeus + Rspec-Rails: undefined method 'configure' for Rspec:Module