Module: Julewire::Core::Testing::Coverage

Defined in:
lib/julewire/core/testing/coverage.rb

Constant Summary collapse

DEFAULT_MINIMUM_LINE =
96
DEFAULT_MINIMUM_BRANCH =
87

Class Method Summary collapse

Class Method Details

.configure_formattersObject



33
34
35
36
37
38
39
40
# File 'lib/julewire/core/testing/coverage.rb', line 33

def configure_formatters
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
    [
      SimpleCov::Formatter::HTMLFormatter,
      SimpleCov::Formatter::LcovFormatter
    ]
  )
end

.configure_lcov_formatterObject



24
25
26
27
28
29
30
31
# File 'lib/julewire/core/testing/coverage.rb', line 24

def configure_lcov_formatter
  SimpleCov::Formatter::LcovFormatter.config do |config|
    config.report_with_single_file = true
    config.output_directory = "coverage/lcov"
    config.lcov_file_name = "lcov.info"
    config.single_report_path = "coverage/lcov/lcov.info"
  end
end

.start!(minimum_line: DEFAULT_MINIMUM_LINE, minimum_branch: DEFAULT_MINIMUM_BRANCH, filters: []) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/julewire/core/testing/coverage.rb', line 12

def start!(minimum_line: DEFAULT_MINIMUM_LINE, minimum_branch: DEFAULT_MINIMUM_BRANCH, filters: [])
  return unless ENV["COVERAGE"]

  require "simplecov"
  require "simplecov-lcov"

  configure_lcov_formatter
  configure_formatters
  start_simplecov(minimum_line: minimum_line, minimum_branch: minimum_branch, filters: filters)
  nil
end

.start_simplecov(minimum_line:, minimum_branch:, filters:) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/julewire/core/testing/coverage.rb', line 42

def start_simplecov(minimum_line:, minimum_branch:, filters:)
  SimpleCov.start do
    enable_coverage :branch
    minimum_coverage line: minimum_line, branch: minimum_branch if minimum_line || minimum_branch
    track_files "lib/**/*.rb"
    add_filter "/test/"
    add_filter "/lib/julewire/core/testing/coverage.rb"
    add_filter %r{/lib/julewire/[^/]+/version\.rb\z}
    add_filter %r{/lib/julewire-[^/]+\.rb\z}
    filters.each { add_filter(it) }
  end
end