README.rdoc
= rspec-prof {<img src="https://travis-ci.org/sinisterchipmunk/rspec-prof.png?branch=master" alt="Build Status" />}[https://travis-ci.org/sinisterchipmunk/rspec-prof] {<img src="https://coveralls.io/repos/sinisterchipmunk/rspec-prof/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/sinisterchipmunk/rspec-prof?branch=master] {<img src="https://codeclimate.com/github/sinisterchipmunk/rspec-prof.png" />}[https://codeclimate.com/github/sinisterchipmunk/rspec-prof]
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 (c) 2010 Colin MacKenzie IV. See LICENSE for details.