2011-04-25 51 views
2

我在rspec郵件列表上問了這個問題,但沒有得到回覆,所以我想我會在這裏嘗試。rake spec失敗,其中rake spec:(models | controllers | views)通過

使用rspec的1.3.2和RSpec護欄1.3.4與1.9.2紅寶石-P180軌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)

我已經耙文件修修補補左右,而當我在默認任務改變

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

到僅命中其中一個子目錄,如

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

然後rake spec的作品。我已經爲模型,控制器和視圖做了這個,並且rake spec對每個都適用。但包括所有的人都喜歡(如上面提到的同樣的錯誤)

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)和1.9.1(-p243)工作。

有沒有人有任何想法?我可以單獨運行每個組(甚至可以創建一個別名一次完成所有操作),但是rspec必須啓動應用程序3次。此外,這並沒有解決爲什麼這不適用於Ruby 1.9.2。

回答

0

我無法解釋爲什麼,但是當我從投機/ spec.opts刪除

--loadby mtime 
--reverse 

,耙規格再次工作。它可能與這個線程[1]有關,但我不知道。

和平。

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