lib/jacoco/plugin.rb in danger-jacoco-0.1.1 vs lib/jacoco/plugin.rb in danger-jacoco-0.1.2
- old
+ new
@@ -67,14 +67,11 @@
.map { |file| file.split('.').first.split(delimiter)[1] }
end
# It returns a specific class code coverage and an emoji status as well
def report_class(jacoco_class)
- counters = jacoco_class.counters
- branch_counter = counters.detect { |e| e.type.eql? 'BRANCH' }
- line_counter = counters.detect { |e| e.type.eql? 'LINE' }
- counter = branch_counter.nil? ? line_counter : branch_counter
+ counter = coverage_counter(jacoco_class)
coverage = (counter.covered.fdiv(counter.covered + counter.missed) * 100).floor
status = coverage_status(coverage, minimum_class_coverage_percentage)
{
covered: coverage,
@@ -106,9 +103,19 @@
status: coverage_status
}
end
private
+
+ def coverage_counter(jacoco_class)
+ counters = jacoco_class.counters
+ branch_counter = counters.detect { |e| e.type.eql? 'BRANCH' }
+ line_counter = counters.detect { |e| e.type.eql? 'LINE' }
+ counter = branch_counter.nil? ? line_counter : branch_counter
+ raise "No coverage data found for #{jacoco_class.name}" if counter.nil?
+
+ counter
+ end
# rubocop:disable Style/SignalException
def report_fails(class_coverage_above_minimum, total_covered)
if total_covered[:covered] < minimum_project_coverage_percentage
# fail danger if total coverage is smaller than minimum_project_coverage_percentage