Class: SixthSense::Runners::CoverageRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/sixth_sense/runners/coverage_runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(config: {}) ⇒ CoverageRunner

Returns a new instance of CoverageRunner.



19
20
21
# File 'lib/sixth_sense/runners/coverage_runner.rb', line 19

def initialize(config: {})
  @config = config
end

Instance Method Details

#availabilityObject



23
24
25
26
27
28
# File 'lib/sixth_sense/runners/coverage_runner.rb', line 23

def availability
  return Availability.new(available: false, reason: "Ruby Coverage module is unavailable") unless defined?(Coverage)
  return Availability.new(available: false, reason: "Coverage.start is unavailable") unless Coverage.respond_to?(:start)

  Availability.new(available: true, reason: "Ruby Coverage module is available")
end

#run(test_files:, isolation: :process) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# File 'lib/sixth_sense/runners/coverage_runner.rb', line 30

def run(test_files:, isolation: :process)
  available = availability
  unless available.available?
    raise Error, "coverage runner unavailable: #{available.reason}"
  end

  test_files.to_h do |test_file|
    [test_file.path, run_file(test_file, isolation: isolation)]
  end
end