2011-01-25 10 views
19

Właśnie trafiam do RSpec z rake: test, i staram się znaleźć jakikolwiek odpowiednik testu rake: test porównawczy i/lub test rake: profile.Szyny: Benchmarking wydajności za pomocą RSPec

A więc, czego używają większość osób z Rspec do testowania wydajności? Znalazłem --profile, który wypluwa dziesięć najwolniejszych testów, ale miałem nadzieję na coś bardziej kompleksowego.

Cheers ...

Odpowiedz

18

Projekt Diaspora wziął ciekawe podejście do testowania wydajności z RSpec - testów, które powiedzieć "ta metoda powinna być szybka/zająć mniej niż N ms"

https://github.com/diaspora/diaspora/blob/a6f8b2c14ed7ec13f2ecd113ae809a072814ab50/spec/controllers/aspects_controller_spec.rb#L92

Inaczej niż w typowym podejściu, ale można go wdrożyć bez wtyczek rspec o niepełnej wartości.

+0

link jest uszkodzony :(Być może istota mogłaby być lepsza długotrwałą odpowiedź – user80805

+2

@ user80805 Wystarczy kliknij historię commitów i znajdź stary kod. Tak właśnie zrobiłem. https://github.com/diaspora/diaspora/blob/a6f8b2c14ed7ec13f2ecd113ae809a072814ab50/spec/controllers/aspects_controller_spec.rb#L92 – Ryanmt

+0

Usunięto. Zastanawiam się, jaka była [faktyczna przyczyna] (https://github.com/diaspora/diaspora/commit/33ba00377e395cf06f48b6f8b5e162230191957e#comments). Mogę wymyślić coś takiego - niekonsekwentne wyniki między biegami i maszynami są prawdopodobnie przełomowe, ale istnieją pewne korzyści z integracji tego procesu testowania. – misza222

2

Jest ruby ​​gem z rspec-benchmark, który pozwala przetestować wydajność w czysty i czytelny sposób sposób:

expect { ... }.to perform_under(0.01).sec 

Można również określić liczbę razy, aby uruchomić swój kod do pomiaru wydajności:

expect { ... }.to perform_under(0.01).and_sample(10) 
Powiązane problemy