Rails: бенчмаркинг производительности с использованием RSPec

Я только что наткнулся на RSpec из rake:test и изо всех сил пытаюсь найти какой-либо эквивалент rake test:benchmark и/или rake test:profile.

Итак, что большинство разработчиков rspec используют для тестирования производительности? Я нашел --profile, который возвращает десять самых медленных тестов, но я надеялся на что-то более полное.

Ваше здоровье...


person PlankTon    schedule 25.01.2011    source источник


Ответы (2)


Проект Diaspora применил интересный подход к тестированию производительности с помощью rspec — тесты, которые говорят: «Этот метод должен быть быстрым / занимать меньше N мс».

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

Отличается от типичного подхода, но его можно реализовать без каких-либо недоработанных плагинов rspec.

person jamiew    schedule 30.01.2011
comment
ссылка не работает :( Возможно, суть может быть лучшим долгосрочным ответом - person user80805; 14.11.2011
comment
@user80805 user80805 Просто нажмите на историю коммитов и найдите старый код. Это то, что я сделал. github.com/diaspora/diaspora/blob/ - person Ryanmt; 29.11.2011
comment
Они удалили его. Интересно, в чем была настоящая причина. Я могу придумать некоторые из них сам: несовместимые результаты между прогонами и машинами, возможно, являются нарушителем условий сделки, но есть и некоторые преимущества интеграции этого внутреннего процесса тестирования. - person misza222; 07.04.2015

Существует рубиновый гем rspec-benchmark, который позволяет протестировать производительность в чистом и читабельном виде:

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

Вы также можете указать количество запусков кода для измерения производительности:

expect { ... }.to perform_under(0.01).and_sample(10)
person Hirurg103    schedule 10.03.2017