2012-06-07 44 views
22

如何找到最慢的rspec測試列表?我想重構那些跑得更快。我試圖尋找寶石,但找不到任何。我在找到緩慢的rspec測試列表

Rspec.before(:each) 

Rspec.after(:each) 

塊考慮把東西來生成該列表。但我不知道如何訪問規範的名稱。

回答

48

這實際上內置在rspec命令中。在運行所有rspec測試時,只需使用-p--profile標誌。

+7

請注意,如果您的規格失敗,配置文件將不會打印。 –

10

正如MrDan說的那樣,--profile標誌。您也可以在項目的根目錄中的文件.rspec,所以你得到的時序信息的時候,像這樣:

$ cat .rspec 
--colour 
--profile 
--format nested 
--backtrace 

您也可以普遍加快所有測試通過關閉垃圾回收,如下所示:

# turn off garbage collection when running tests, place this in spec_helper.rb 
RSpec.configure do |config| 
    config.before(:all) do 
    DeferredGarbageCollection.start 
    end 

    config.after(:all) do 
    DeferredGarbageCollection.reconsider 
    end 
end 
+0

謝謝,但我得到「未初始化的恆定DeferredGarbageCollection」 –

+0

https://makandracards.com/makandra/950-speed-up-rspec-by-deferring-garbage-collection – michelpm

+0

推遲GC是一個非常有趣的想法。 @rob你看到這樣做有什麼缺點嗎? – marcgg