lib/jacoco/plugin.rb in danger-jacoco-0.1.6 vs lib/jacoco/plugin.rb in danger-jacoco-0.1.7
- old
+ new
@@ -18,24 +18,21 @@
#
# @see Anton Malinskiy/danger-jacoco
# @tags jacoco, coverage, java, android, kotlin
#
class DangerJacoco < Plugin # rubocop:disable Metrics/ClassLength
- attr_accessor :minimum_project_coverage_percentage
- attr_accessor :minimum_class_coverage_percentage
- attr_accessor :files_extension
- attr_accessor :minimum_package_coverage_map
- attr_accessor :minimum_class_coverage_map
- attr_accessor :fail_no_coverage_data_found
+ attr_accessor :minimum_project_coverage_percentage, :minimum_class_coverage_percentage, :files_extension,
+ :minimum_package_coverage_map, :minimum_class_coverage_map, :fail_no_coverage_data_found, :title
# Initialize the plugin with configured parameters or defaults
def setup
@minimum_project_coverage_percentage = 0 unless minimum_project_coverage_percentage
@minimum_class_coverage_percentage = 0 unless minimum_class_coverage_percentage
@minimum_package_coverage_map = {} unless minimum_package_coverage_map
@minimum_class_coverage_map = {} unless minimum_class_coverage_map
@files_extension = ['.kt', '.java'] unless files_extension
+ @title = 'JaCoCo' unless title
end
# Parses the xml output of jacoco to Ruby model classes
# This is slow since it's basically DOM parsing
#
@@ -60,22 +57,22 @@
# that is your path to source files is something like
#
# Java => blah/blah/java/slashed_package/Source.java
# Kotlin => blah/blah/kotlin/slashed_package/Source.kt
#
- def report(path, report_url = '', delimiter = %r{\/java\/|\/kotlin\/}, fail_no_coverage_data_found: true)
+ def report(path, report_url = '', delimiter = %r{/java/|/kotlin/}, fail_no_coverage_data_found: true)
@fail_no_coverage_data_found = fail_no_coverage_data_found
setup
classes = classes(delimiter)
parser = Jacoco::SAXParser.new(classes)
Nokogiri::XML::SAX::Parser.new(parser).parse(File.open(path))
total_covered = total_coverage(path)
- report_markdown = "### JaCoCO Code Coverage #{total_covered[:covered]}% #{total_covered[:status]}\n"
+ report_markdown = "### #{title} Code Coverage #{total_covered[:covered]}% #{total_covered[:status]}\n"
report_markdown += "| Class | Covered | Meta | Status |\n"
report_markdown += "|:---|:---:|:---:|:---:|\n"
class_coverage_above_minimum = markdown_class(parser, report_markdown, report_url)
markdown(report_markdown)
@@ -164,11 +161,11 @@
counter = branch_counter.nil? ? line_counter : branch_counter
if counter.nil?
no_coverage_data_found_message = "No coverage data found for #{jacoco_class.name}"
- raise no_coverage_data_found_message if @fail_no_coverage_data_found.class == TrueClass
+ raise no_coverage_data_found_message if @fail_no_coverage_data_found.instance_of?(TrueClass)
warn no_coverage_data_found_message
end
counter
@@ -204,10 +201,10 @@
def report_link(class_name, report_url)
if report_url.empty?
"`#{class_name}`"
else
- report_filepath = class_name.gsub(%r{/(?=[^/]*/.)}, '.') + '.html'
+ report_filepath = "#{class_name.gsub(%r{/(?=[^/]*/.)}, '.')}.html"
"[`#{class_name}`](#{report_url + report_filepath})"
end
end
end
end