rake spec失败,其中rake spec :( models | controllers | views)通过

时间:2011-04-25 21:02:48

标签: rspec ruby-1.9.2 ruby-on-rails-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']

在默认任务中仅命中其中一个子目录,例如

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

然后rake spec工作。我已经为模型,控制器和视图做了这个,并且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:控制器工作。除非它与文件和/或示例的数量有关。每种规格类型的文件数和示例数为

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。

1 个答案:

答案 0 :(得分:0)

我无法解释原因,但是当我删除

--loadby mtime
--reverse
来自spec / spec.opts的

,rake spec再次起作用。 可能与此帖[1]有关,但我不知道。

和平。

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