Module: Coverage::Kit

Defined in:
lib/coverage/kit.rb,
lib/coverage/kit/version.rb

Constant Summary collapse

VERSION =
"0.4.0"

Class Method Summary collapse

Class Method Details

.setup(minimum_coverage:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/coverage/kit.rb', line 7

def self.setup(minimum_coverage:)
  return if ENV["COVERAGE"] == "off"

  @minimum_coverage = minimum_coverage
  @maximum_coverage = @minimum_coverage + 0.5

  SimpleCov.start do
    if ENV["CI"]
      SimpleCov::Formatter::LcovFormatter.config do |c|
        c.report_with_single_file = true
        c.single_report_path = "coverage/lcov.info"
      end
      formatter SimpleCov::Formatter::LcovFormatter
    else
      formatter SimpleCov::Formatter::MultiFormatter.new([
        SimpleCov::Formatter::SimpleFormatter,
        SimpleCov::Formatter::HTMLFormatter
      ])
    end

    enable_coverage :branch

    add_filter "/vendor/"
    add_filter "/config/"
    add_filter "/spec/"
    add_group "lib", "lib"
  end

  SimpleCov.at_exit do
    SimpleCov.result.format!
    percent = SimpleCov.result.covered_percent
    puts "Coverage is #{"%.2f" % percent} (min: #{@minimum_coverage})"
    if percent < @minimum_coverage
      puts "Coverage must be above #{@minimum_coverage}"
      Kernel.exit(1)
    elsif percent > @maximum_coverage
      puts "Coverage must be below #{@maximum_coverage}. Time to bump coverage!"
      Kernel.exit(1)
    end
  end
end