2

私は以下を使用しています:

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 spec、問題なく実行できますrake

では、構成ブロックの前spec_helperに I をrequire 'rspec/rails指定すると、ガードは正常に機能しますが、次rspec specのエラーで失敗します。

uninitialized constant ActiveSupport::Autoload (NameError)

rails_helperspec_helper が分離されているため、ロード順序に問題があると思います。

2 つの質問:

  1. どうすればこれを修正できますか?
  2. 最新のRailsとRspecで動作する、ローカルでの継続的統合のための別のソリューションを推奨できますか?

1 つの質問に答えるだけです。

4

4 に答える 4

5

次の修正は私のために働いた:

#spec/spec_helper.rb
require 'rspec/core'
于 2015-06-01T12:36:06.013 に答える
2

問題になる可能性のある簡単な回答を捨てる。spec_helper ファイルの順序は次のとおりです。

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

config/environment の require の後に rspec/rails が必要です。

于 2014-09-20T00:01:46.377 に答える
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' を使用します (推奨される変更を使用するのが理想的です)。

于 2014-12-17T05:39:15.193 に答える