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 で機能しない理由にも対応していません。