2

rspec メーリング リストでこの質問をしましたが、回答が得られなかったので、ここで試してみようと思いました。

ruby 1.9.2-p180 で rspec 1.3.2 と rspec-rails 1.3.4 を rails 2.3.11 で使用すると、

$ rake spec:models

それらはすべて合格します。私が

$ rake spec:controllers

それらはすべて合格します。私が

$ rake spec:views

それらはすべて合格します。しかし、私が

$ rake spec

私は得る

<path to gem>/activesupport-2.3.11/lib/active_support/dependencies.rb:177: stack level too deep (SystemStackError)

私はrakeファイルをいじっていましたが、変更すると

t.spec_files = FileList['spec/**/*_spec.rb']

デフォルトのタスクで、次のようなサブディレクトリの 1 つだけをヒットします。

t.spec_files = FileList['spec/models/**/*_spec.rb']

その後、レーキスペックが機能します。モデル、コントローラー、ビューに対してこれを行いましたが、rake 仕様はそれぞれ正常に動作します。しかし、それらすべてを含めて

t.spec_files = FileList['spec/models/**/*_spec.rb', 'spec/controllers/**/*_spec.rb', 'spec/views/**/*_spec.rb']

動作しませ(上記と同じエラー)。皮肉なことに、モデルとビューだけを含めても機能します。

t.spec_files = FileList['spec/models/**/*_spec.rb', 'spec/views/**/*_spec.rb']

しかし、コントローラーを含むどの組み合わせでも失敗するようです。rake spec:controllers が機能するので、これは私には奇妙です。ファイルやサンプルの数に関係がない限り。各仕様タイプのファイルと例の数は次のとおりです。

models:      25 files, 391 examples
controllers: 26 files, 973 examples
views:       52 files, 508 examples

Ruby 1.8.7(-p302) および Ruby 1.9.1(-p243) では、rake 仕様のみを使用して動作しました。

誰にもアイデアはありますか?各グループを個別に実行することはできますが (エイリアスを作成して一度に実行することもできます)、rspec はアプリを 3 回起動する必要があります。さらに、これが ruby​​ 1.9.2 で機能しない理由にも対応していません。

4

1 に答える 1

0

理由は説明できませんが、削除すると

--loadby mtime
--reverse

spec/spec.opts から、rake 仕様が再び機能するようになりました。このスレッド [1] と関係があるかもしれませんが、わかりません。

平和。

[1] http://www.ruby-forum.com/topic/1151108

于 2011-05-19T18:06:28.607 に答える