【发布时间】:2011-04-25 21:02:48
【问题描述】:
我在 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']
在默认任务中只打其中一个子目录,比如
t.spec_files = FileList['spec/models/**/*_spec.rb']
然后 rake 规范有效。我已经为模型、控制器和视图做到了这一点,并且 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
仅使用 rake 规范确实适用于 Ruby 1.8.7(-p302) 和 Ruby 1.9.1(-p243)。
有人有什么想法吗?我可以单独运行每个组(甚至创建一个别名来一次完成所有操作),但是 rspec 必须启动应用程序 3 次。此外,这并没有解决为什么这不适用于 ruby 1.9.2。
【问题讨论】:
标签: rspec ruby-1.9.2 ruby-on-rails-2