Sha256: db68843b56a45d8f32f3eb0101999539b40a489eb62d32f5dc0e05682dd79ba6
Contents?: true
Size: 1.53 KB
Versions: 11
Compression:
Stored size: 1.53 KB
Contents
# frozen_string_literal: true require_relative 'core_ext/exec_callbacks' module DeepCover module AutoRun class Runner def initialize(covered_path) @covered_path = covered_path @saved = !(DeepCover.respond_to?(:running?) && DeepCover.running?) end def run! after_tests { save } ExecCallbacks.before_exec { save } self end def report!(**options) after_tests { puts report(**options) } self end private def saved? @saved end def coverage @coverage ||= if saved? Coverage.load(@covered_path, with_trackers: false) else DeepCover.coverage end end def save require_relative '../deep_cover' coverage.save(@covered_path) unless saved? coverage.save_trackers(@covered_path) end def report(**options) coverage.report(**options) end def after_tests use_at_exit = true if defined?(Minitest) use_at_exit = false Minitest.after_run { yield } end if defined?(Rspec) use_at_exit = false RSpec.configure do |config| config.after(:suite) { yield } end end if use_at_exit at_exit { yield } end end end def self.run!(covered_path) @runners ||= {} @runners[covered_path] ||= Runner.new(covered_path).run! end end end
Version data entries
11 entries across 11 versions & 2 rubygems