2012-06-07 18 views
22

Come posso trovare un elenco dei test rspec più lenti? Voglio refactoring quelli per correre più veloce. Ho provato a cercare gemme ma non ne trovo nessuna. Stavo pensando di mettere qualcosa inTrovare un elenco di test lenti lenti spec.

Rspec.before(:each) 

e

Rspec.after(:each) 

blocchi per generare questa lista. Ma non so come accedere al nome della specifica.

risposta

48

Questo in realtà è incorporato nel comando rspec. Usa il flag -p o --profile mentre esegui tutti i tuoi test rspec.

+7

Come nota, il profilo non verrà stampato se le specifiche non sono soddisfacenti. –

10

Come dice MrDan, la bandiera --profile. È inoltre possibile creare un file .rspec nella root del vostro progetto, in modo da ottenere le informazioni di temporizzazione per tutto il tempo, in questo modo:

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

È possibile anche accelerare tutti i test in generale spegnendo garbage collection , come questo:

# 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

Grazie, ma ottengo "costante non inizializzata DeferredGarbageCollection" –

+0

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

+0

Il differimento di GC è un'idea interessante. @rob vedi qualche inconveniente nel fare questo? – marcgg