ruby-on-rails 防护装置+ Zeus + Rspec-Rails:Rspec:Module的方法“configure”未定义

sqserrrh  于 2023-02-26  发布在  Ruby
关注(0)|答案(4)|浏览(162)

我使用以下代码:

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中,如果在configure块之前输入require 'rspec/rails,guard工作正常,但rspec spec会失败,并显示以下错误:

uninitialized constant ActiveSupport::Autoload (NameError)

我猜现在rails_helperspec_helper是分开的,加载顺序有问题。
两个问题:
1.我该怎么补救呢?
1.有没有一个不同的解决方案,持续集成 * 本地 *,你可以推荐与最新的Rails和Rspec。
你只需要回答一个问题。

ulydmbyx

ulydmbyx1#

以下修复对我有效:

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

ca1c2owp2#

抛出一个可能是问题的快速答案。spec_helper文件应该具有以下顺序:

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

在config/environment require之后需要rspec/rails。

mf98qq94

mf98qq943#

以下内容:

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

表明你错过了

require 'rspec'

这通常是不必要的,但如果你把它放在你的spec/spec_helper.rb应该工作。
(If您可以直接运行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"表示差异(最好使用推荐的更改)。

idfiyjo8

idfiyjo84#

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

require 'rspec/rails'

参考以下内容:Zeus GitHub issue 308

相关问题