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