2012-06-07 14 views
22

Wie kann ich eine Liste der langsamsten rspec Tests finden? Ich möchte diese umgestalten, um schneller zu laufen. Ich habe versucht, nach Edelsteinen zu suchen, kann aber keine finden. Ich dachte anFinden Sie eine Liste langsamer rspec Tests

Rspec.before(:each) 

und

Rspec.after(:each) 

Blöcke in etwas setzen, diese Liste zu erzeugen. Aber ich weiß nicht, wie ich auf den Namen der Spezifikation zugreifen soll.

Antwort

48

Das ist eigentlich direkt in den Befehl rspec eingebaut. Verwenden Sie einfach die -p oder --profile Flagge, während Sie alle Ihre rspec Tests ausführen.

+7

Als ein Hinweis, das Profil wird nicht gedruckt, wenn Ihre Spezifikationen nicht erfolgreich sind. –

10

Wie MrDan sagt, die --profile Flagge. Sie können auch eine .rspec Datei im Root Ihres Projekts machen, so dass Sie die Timing-Informationen die ganze Zeit, wie diese:

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

Sie auch alle Ihre Tests im Allgemeinen durch Abschalten der Garbage Collection beschleunigen kann , wie folgt:

# 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

Danke, aber ich bekomme "nicht initialisierte Konstante DeferredGarbageCollection" –

+0

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

+0

Zurückstellung GC ist eine ziemlich interessante Idee. @rob siehst du irgendwelche Nachteile dabei? – marcgg

Verwandte Themen