Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

*NOT ACTIVELY MAINTAINED* Rails plugin (and/or ruby gem) for benchmarking your test::units: a rework of the original by topfunky

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 History.txt
Octocat-spinner-32 Manifest.txt
Octocat-spinner-32 README.textile
Octocat-spinner-32 Rakefile
Octocat-spinner-32 about.yml
Octocat-spinner-32 init.rb
Octocat-spinner-32 test_benchmark.gemspec
README.textile

Not actively maintained

Test Benchmark

A ruby gem and rails plugin to show you how slow your Test::Unit tests run. Useful for troubleshooting/isolating slow tests. Available from http://github.com/timocratic/test_benchmark/

Sample output:


  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)

Install and enable

As a Rails Plugin

./script/plugin install git://github.com/timocratic/test_benchmark.git

As a Ruby gem

Install

  • Update to RubyGems 1.2.0+ before proceeding!!
  • gem sources -a http://gems.github.com (you only have to do this once)
  • sudo gem install timocratic-test_benchmark

Enable

  • require ‘rubygems’
  • require ’test_benchmark

As a (frozen) gem in rails

I recommend this method. It makes updating simple, and if I had more config in the future, that will be easily done only in your test environment

in config/environments/test.rb


config.gem "timocratic-test_benchmark", :lib => 'test_benchmark', :source => 'http://gems.github.com', :version => '0.4.2' #update to whatever version number is current

from the console


RAILS_ENV=test GEM=timocratic-test_benchmark rake gems:install
RAILS_ENV=test GEM=timocratic-test_benchmark rake gems:unpack #optional, but suggested step - 'freezing' the gem

Options and disabling temporarily

By default the top 15 slowest tests are output to the console (and in Rails the whole list is dumped to test.log). To see the full dump in your console (as well as get a per-file/suite breakdown) set the env variable BENCHMARK to ‘full’:

BENCHMARK=full rake test

To disable completely, run with it set to ‘false’ instead.

You can also customize the number of results through the Test::Unit::UI::Console::TestRunner.set_test_benchmark_limits(set_display_limit, set_suite_display_limit) method. For example, putting this line in your test_helper.rb file will output a summary of 5 slowest tests and 3 slowest test classes:


Test::Unit::UI::Console::TestRunner.set_test_benchmark_limits(5, 3)

And this will disable output entirely:


Test::Unit::UI::Console::TestRunner.set_test_benchmark_limits(0, 0)
Something went wrong with that request. Please try again.