SimpleCov Rcov Formatter gem

SimpleCov Rcov logo

Is a Rcov style formatter for the ruby 1.9+ coverage gem: SimpleCov.

The target of this formatter is to cheat on Hudson so I can use the Ruby metrics plugin with SimpleCov.

So if you are looking some kind of workaround to integrate SimpleCov with your Hudson + Ruby metrics plugin this is a beginning.

Install

$ [sudo] gem install simplecov-rcov

Usage

require 'simplecov-rcov'
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter

Or if you want to share this formatter with another formatter like HTML formatter you can add both:

require 'simplecov'
require 'simplecov-rcov'
class SimpleCov::Formatter::MergedFormatter
  def format(result)
     SimpleCov::Formatter::HTMLFormatter.new.format(result)
     SimpleCov::Formatter::RcovFormatter.new.format(result)
  end
end
SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter

You can also add a flag support so if you don't run the tests activating the COVERAGE environment variable to on the coverage report won't be used:

if( ENV['COVERAGE'] == 'on' )
  require 'simplecov'
  require 'simplecov-rcov'
  class SimpleCov::Formatter::MergedFormatter
    def format(result)
       SimpleCov::Formatter::HTMLFormatter.new.format(result)
       SimpleCov::Formatter::RcovFormatter.new.format(result)
    end
  end
  SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter
  SimpleCov.start 'rails' do
    add_filter "/vendor/"
  end
end

Run it using this:

$ COVERAGE=on rake test

ISSUES

To add the gem to the Gemfile try to do it this way:

gem 'simplecov', :require => false
gem 'simplecov-rcov', :require => false

And require the gems just before use the SimpleCov constant, like in the examples above.

If not could be Uninitialized constant SimpleCov issues.

Credits