Integrates ruby-prof with RSpec, allowing you to easily profile your RSpec examples.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
features
lib
.document
.gitignore
.travis.yml
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
VERSION
rspec-prof.gemspec

README.rdoc

rspec-prof Build Status Coverage Status

Integrates ruby-prof with RSpec, allowing you to easily profile your RSpec examples.

Installation

If you need to use rspec-prof in Rails 2.x or RSpec 1.x, use version `0.0.3`.

Gemfile:

group :test do
  gem 'rspec-prof'
end

Usage

The easiest way to use rspec-prof is to export the `RSPEC_PROFILE` environment variable:

$ rake spec RSPEC_PROFILE=each

This will cause every spec to be profiled individually. The output will be placed in `./profiles` by default.

To execute all specs as parts of a single profile, export `RSPEC_PROFILE=all` instead.

Configuration

You can set some configuration options for `rspec-prof`, as long as you do so before `RSpec` begins running specs. Thus, the best place for this configuration is in `spec/support/rspec-prof.rb`.

Valid configuration options and their default values are:

RSpecProf.printer_class = RubyProf::GraphHtmlPrinter
  # The printer to be used when writing profiles

RSpecProf::FilenameHelpers.file_extension = "html"
  # The file extension for profiles written to disk

RSpecProf::FilenameHelpers.output_dir = "profiles"
  # The destination directory into which profiles are written

Pausing and Resuming

It is perfectly OK to do this:

require 'spec_helper'

describe "smth" do
  before do
    # let's not profile the test set-up
    RubyProf.pause if RubyProf.running?

    sleep 30 # doing something expensive...

    # don't forget to resume so specs can be measured!
    RubyProf.resume if RubyProf.running?
  end
end

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2010 Colin MacKenzie IV. See LICENSE for details.