【问题标题】:rake spec fails where rake spec:(models|controllers|views) passrake spec 在 rake spec:(models|controllers|views) 通过时失败
【发布时间】: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


    【解决方案1】:

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

    --loadby mtime
    --reverse
    

    来自 spec/spec.opts,rake 规范再次起作用。它可能与这个线程[1]有关,但我不知道。

    和平。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 2011-01-29
      • 1970-01-01
      相关资源
      最近更新 更多