Я хотел бы знать, сколько потребовалось для выполнения 10 самых трудоемких тестов. Как я могу сделать с rspec, любое предложение?Как я могу выполнить профилирование рубинов?
ответ
Короткий ответ:
gem install minitest # Install MiniTest
gem install minitest_tu_shim # Install Test::Unit shim
use_minitest yes # Use MiniTest Test::Unit shim instead of stdlib Test::Unit
ruby your_test.rb -v # Run your test in verbose mode
Ruby 1.9 Использование MiniTest
в качестве тестирования по умолчанию рамки вместо Test::Unit
. MiniTest меньше, быстрее, имеет более полезные функции и в значительной степени обратно совместим с Test :: Unit. Одной из этих новых функций является измерение времени, которое каждый тест берет с флагом -v
. При запуске е, что вы поместите этот флаг после того, как сценарий
Если, как в рельсах, вы используете Rake::TestTask
для запуска тестов, вы можете либо указать его во время выполнения, запустив
rake test TESTOPTS='-v'
или указать его в задаче, добавив -v
атрибуту options
, как так
Rake::TestTask.new do |t|
t.options = '-v'
end
Наконец, если вы используете рельсы и MiniTest просто не достаточно хорошо для вас, вы можете оценить test_benchmark
plugi п. Использование легко. Добавьте следующую строку в config/environments/test.rb
config.gem "timocratic-test_benchmark",
:lib => 'test_benchmark',
:source => 'http://gems.github.com'
Установите его с
RAILS_ENV='test' rake gems:install
С тех пор, вы получите хороший отсортированный список, когда вы запускаете тесты
rake test:units
[...]
Test Benchmark Times: Suite Totals:
7.124 test_destroy(FeedTest)
7.219 test_create(FeedTest)
7.646 test_subscribe_to_auto_discovery(FeedTest)
9.339 test_auto_discover_updates_url(FeedTest)
9.543 test_find_or_create_by_auto_discover_url(FeedTest)
15.780 test_import_from_opml(FeedTest)
Я К сожалению, MiniTest
и плагин test_benchmark
несовместимы друг с другом, но я настоятельно рекомендую вам попробовать MiniTest
, так как это сделает ваш твой sts быстрее и будет поддерживаться в Ruby 1.9.
Действительно классно! Большое спасибо! –
В последних версиях драгоценного камня 'test-unit' также отображается время, взятое в подробном режиме. –
oops Я тестировал это, и я получаю: ARGH! кто-то определил Test :: Unit :: TestCase вместо того, чтобы требовать /usr/local/lib/site_ruby/1.8/rubygems.rb:777:in 'report_activate_error ': не удалось найти тестовый блок RubyGem (= 1.2.3) (Gem :: LoadError) Любая идея? –
Возможно, выполните ваши юнит-тесты под профилем ruby, выполнив код с ruby -rprofile
вместо ruby
?
Спасибо за ответ, я пытаюсь запустить его, как вы сказали, но я получаю это: /usr/lib/ruby/1.8/profiler. rb: 13: в 'hash ': bignum слишком большой, чтобы преобразовать в' long' (RangeError) –
Minitest :: Профиль - это новый камень, в котором перечислены верхние нарушители после стандартного тестового прогона.
Мы использовали это, и это неплохо –
- 1. Как выполнить профилирование на CakePHP1.3
- 2. Как выполнить профилирование производительности кластера Hadoop
- 3. Как я могу записывать журнал рубинов для каждой строки выполнения?
- 4. Как я могу перенести массивы рубинов разных размеров?
- 5. Как я могу выполнить ThreadPool.Join?
- 6. Как я могу установить MongoDB профилирование уровень настойчиво
- 7. Могу ли я обновить rvm без потери рубинов?
- 8. Как выполнить профилирование приложения Java, завершенного как .exe?
- 9. Угловой генератор без рубинов
- 10. Как отслеживать процесс рубинов?
- 11. Как я могу выполнить тестирование перегруженных функций?
- 12. Как я могу выполнить DragDrop/swap ChartControl?
- 13. Как я могу выполнить выполнение функции?
- 14. Как я могу выполнить несколько поисков?
- 15. Как я могу принудительно выполнить блок захвата?
- 16. Как я могу выполнить проверку ввода?
- 17. Как я могу выполнить цикл перехода?
- 18. Как я могу выполнить javascript в Bash?
- 19. Как я могу выполнить неблокирующий System.Beep()?
- 20. Как я могу выполнить структурированное ведение журнала?
- 21. Как я могу выполнить запрос COUNT
- 22. Как я могу выполнить из службы
- 23. Как я могу выполнить rebase с pygit2?
- 24. Как я могу выполнить этот запрос быстрее?
- 25. Как я могу выполнить этот запрос LINQ?
- 26. Как я могу выполнить тестирование службы Windows?
- 27. Как я могу выполнить извлечение фона iOS?
- 28. Как я могу выполнить другие операции?
- 29. Как я могу выполнить цикл .on()?
- 30. Как я могу успешно выполнить демонстрацию SIP
Другим решением было бы знать, сколько взяли каждый тест, а не только 10 наиболее трудоёмким. –
Возможно, [этот плагин] (http://github.com/timocratic/test_benchmark) может вам помочь. –
Прямо сейчас я пытаюсь подключить rspec к модульному тесту ... –