rspec-prof
rspec-prof copied to clipboard
Integrates ruby-prof with RSpec, allowing you to easily profile your RSpec examples.
= rspec-prof {}[https://travis-ci.org/sinisterchipmunk/rspec-prof] {
}[https://coveralls.io/r/sinisterchipmunk/rspec-prof?branch=master] {
}[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.