module SimpleCov
Helper that tries to find out what test suite is running (for SimpleCov.command_name)
Bundles the configuration options used for SimpleCov. All methods defined here are usable from SimpleCov directly. Please check out SimpleCov documentation for further info.
An array of SimpleCov SourceFile instances with additional collection helper methods for calculating coverage across them etc.
A ridiculously simple formatter for SimpleCov results.
Profiles are SimpleCov configuration procs that can be easily loaded using ::start :rails and defined using
SimpleCov.profiles.define :foo do # SimpleCov configuration here, same as in SimpleCov.configure end
Singleton that is responsible for caching, loading and merging SimpleCov::Results into a single result for coverage analysis based upon multiple test suites.
Constants
- VERSION
Attributes
Public Class Methods
Applies the configured filters to the given array of SimpleCov::SourceFile items
# File lib/simplecov.rb, line 80 def filtered(files) result = files.clone filters.each do |filter| result = result.reject { |source_file| filter.matches?(source_file) } end SimpleCov::FileList.new result end
Applies the configured groups to the given array of SimpleCov::SourceFile items
# File lib/simplecov.rb, line 91 def grouped(files) grouped = {} grouped_files = [] groups.each do |name, filter| grouped[name] = SimpleCov::FileList.new(files.select { |source_file| filter.matches?(source_file) }) grouped_files += grouped[name] end if groups.length > 0 && (other_files = files.reject { |source_file| grouped_files.include?(source_file) }).length > 0 grouped["Ungrouped"] = SimpleCov::FileList.new(other_files) end grouped end
# File lib/simplecov.rb, line 111 def load_adapter(name) warn "method load_adapter is deprecated. use load_profile instead" load_profile(name) end
Applies the profile of given name on SimpleCov configuration
# File lib/simplecov.rb, line 107 def load_profile(name) profiles.load(name) end
Returns the result for the current coverage run, merging it across test suites from cache using SimpleCov::ResultMerger if use_merging is activated (default)
# File lib/simplecov.rb, line 55 def result @result ||= SimpleCov::Result.new(Coverage.result) if running # If we're using merging of results, store the current result # first, then merge the results and return those if use_merging SimpleCov::ResultMerger.store_result(@result) if @result return SimpleCov::ResultMerger.merged_result else return @result if defined? @result end ensure self.running = false end
Returns nil if the result has not been computed Otherwise, returns the result
# File lib/simplecov.rb, line 73 def result? defined?(@result) && @result end
Sets up SimpleCov to run against your project. You can optionally specify a profile to use as well as configuration with a block:
SimpleCov.start OR SimpleCov.start 'rails' # using rails profile OR SimpleCov.start do add_filter 'test' end OR SimpleCov.start 'rails' do add_filter 'test' end
Please check out the RDoc for SimpleCov::Configuration to find about available config options
# File lib/simplecov.rb, line 36 def start(profile = nil, &block) if SimpleCov.usable? load_profile(profile) if profile configure(&block) if block_given? @result = nil self.running = true self.pid = Process.pid Coverage.start else warn "WARNING: SimpleCov is activated, but you're not running Ruby 1.9+ - no coverage analysis will happen" warn "Starting with SimpleCov 1.0.0, even no-op compatibility with Ruby <= 1.8 will be entirely dropped." false end end
Checks whether we're on a proper version of Ruby (likely 1.9+) which provides coverage support
# File lib/simplecov.rb, line 120 def usable? return @usable if defined?(@usable) && !@usable.nil? @usable = begin require "coverage" require "simplecov/jruby_fix" true rescue LoadError false end end