Краткий ответ:
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
. При запуске убедитесь, что вы ставите этот флаг после скрипта
Если, как и в rails, вы используете Rake::TestTask
для запуска своих тестов, вы можете указать его во время выполнения, запустив
rake test TESTOPTS='-v'
или укажите его в задаче, добавив -v
к атрибуту options
, например
Rake::TestTask.new do |t|
t.options = '-v'
end
Наконец, если вы используете рельсы, а MiniTest вам не подходит, вы можете по достоинству оценить плагин test_benchmark
. Использование легко. Добавьте следующую строку к вашему 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
, так как это сделает ваши тесты быстрее и будет работать поддерживается в Ruby 1.9.