Class: AeTestCoverage::Collectors::RubyCoverageCollector

Inherits:
Object
  • Object
show all
Defined in:
lib/ae_test_coverage/collectors/ruby_coverage_collector.rb

Constant Summary collapse

@@initialized =
false

Instance Method Summary collapse

Constructor Details

#initializeRubyCoverageCollector

Returns a new instance of RubyCoverageCollector.



8
9
10
11
12
13
14
# File 'lib/ae_test_coverage/collectors/ruby_coverage_collector.rb', line 8

def initialize
  unless @@initialized
    require 'coverage'
    Coverage.start(oneshot_lines: true, methods: true)
    @@initialized = true
  end
end

Instance Method Details

#covered_filesObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ae_test_coverage/collectors/ruby_coverage_collector.rb', line 20

def covered_files
  coverage = Coverage.result(clear: true)
  {}.tap do |coverage_data|
    coverage.each do |file, data|
      next if AeTestCoverage.exclude_file?(file)

      called_methods = data[:methods].select { |_, call_count| call_count > 0 }
      oneshot_lines = reject_oneshot_lines_from_methods(called_methods, data[:oneshot_lines])
      coverage_data[file] = {methods: called_methods, oneshot_lines: oneshot_lines} unless called_methods.empty? && oneshot_lines.empty?
    end
  end
end

#on_startObject



16
17
18
# File 'lib/ae_test_coverage/collectors/ruby_coverage_collector.rb', line 16

def on_start
  Coverage.result(clear: true)
end