Project

rspec-prof

0.09
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Integrates ruby-prof with RSpec, allowing you to easily profile your RSpec examples.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 3.0
 Project Readme

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 © 2010 Colin MacKenzie IV. See LICENSE for details.