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
|