Skip to content

Instantly share code, notes, and snippets.

@bsodmike
Created June 26, 2013 12:02
Show Gist options
  • Save bsodmike/5866873 to your computer and use it in GitHub Desktop.
Save bsodmike/5866873 to your computer and use it in GitHub Desktop.
HOWTO get SimpleCov to provide coverage of an externally mounted engine
# NOTE hack to get SimpleCov to load MyEngine
# @see http://stackoverflow.com/questions/9501607/simplecov-with-multiple-apps-or-in-short-how-does-simplecov-work
# @see https://twitter.com/TheDeadSerious/status/349851185819299840
SimpleCov.adapters.delete(:root_filter)
SimpleCov.filters.clear
SimpleCov.adapters.define 'engine_filter' do
add_filter do |src|
!(src.filename =~ /^#{SimpleCov.root}/) unless src.filename =~ /my_engine/
end
end
SimpleCov.start('rails') do
load_adapter 'engine_filter'
end if ENV['COVERAGE']
@jirikolarik
Copy link

Slightly updated regexp, to avoid external libraries which contains same name as engine

SimpleCov.start('rails') do
  adapters.delete(:root_filter)
  filters.clear
  add_filter do |src|
    !(src.filename =~ /^#{SimpleCov.root}/) unless src.filename =~ /\/my_engine\//
  end
end if ENV['COVERAGE']

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment