2011-01-25 8 views
19

Estoy llegando a RSpec de rake: prueba, y estoy luchando para encontrar cualquier equivalente a la prueba de rake: prueba de referencia y/o rake: perfil.Rieles: evaluación comparativa de rendimiento utilizando RSPec

Entonces, ¿qué utilizan la mayoría de las personas de rspec para las pruebas de rendimiento? Encontré --profile, que repite las diez pruebas más lentas, pero esperaba algo un poco más completo.

Saludos ...

Respuesta

18

El proyecto diáspora tomaron un enfoque interesante para las pruebas de rendimiento con rspec - pruebas que dicen "este método debe ser rápido y/o tome menos de N ms"

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

Diferente al enfoque típico pero implementable sin complementos de rspec medio horneados

+0

enlace está roto :(Tal vez lo esencial podría ser una mejor respuesta de larga duración – user80805

+2

@ user80805 Justo haga clic en el historial de compromisos y encuentre el código anterior. Eso es lo que hice. https://github.com/diaspora/diaspora/blob/a6f8b2c14ed7ec13f2ecd113ae809a072814ab50/spec/controllers/aspects_controller_spec.rb#L92 – Ryanmt

+0

Lo eliminaron. Me pregunto qué [la verdadera razón era] (https://github.com/diaspora/diaspora/commit/33ba00377e395cf06f48b6f8b5e162230191957e#comments). Puedo pensar en algo así como yo: los resultados inconsistentes entre carreras y máquinas es quizás el factor decisivo, pero también existen algunas ventajas de integrar este proceso de prueba interno. – misza222

2

Hay rspec-benchmark ruby ​​gem que permite probar el rendimiento en limpio y legible manera:

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

También puede especificar el número de veces para ejecutar el código para medir el rendimiento:

expect { ... }.to perform_under(0.01).and_sample(10) 
Cuestiones relacionadas