Sha256: acbc9475bb09381f5c224595681085491308f8d6451d1c99c5f3c0ae28db836f
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true require 'nokogiri' require 'table_print' module GitlabQuality module TestTooling class SummaryTable def self.create(input_files:, **options) "```\n#{TablePrint::Printer.table_print(collect_results(input_files, **options))}```\n" end # rubocop:disable Metrics/AbcSize def self.collect_results(input_files, **options) sort_by = options[:sort_by] sort_direction = options[:sort_direction] stage_wise_results = Dir.glob(input_files).each_with_object([]) do |report_file, stage_wise_results| stage_hash = {} stage_hash["Dev Stage"] = File.basename(report_file, ".*").capitalize report_stats = Nokogiri::XML(File.open(report_file)).children[0].attributes stage_hash["Total"] = report_stats["tests"].value stage_hash["Failures"] = report_stats["failures"].value stage_hash["Errors"] = report_stats["errors"].value stage_hash["Skipped"] = report_stats["skipped"].value stage_hash["Result"] = result_emoji(report_stats) stage_wise_results << stage_hash end stage_wise_results.sort_by! { |stage_hash| stage_hash[sort_by] } if sort_by stage_wise_results.reverse! if sort_direction == :desc stage_wise_results end # rubocop:enable Metrics/AbcSize def self.result_emoji(report_stats) report_stats["failures"].value.to_i.positive? || report_stats["errors"].value.to_i.positive? ? "❌" : "✅" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gitlab_quality-test_tooling-1.29.1 | lib/gitlab_quality/test_tooling/summary_table.rb |
gitlab_quality-test_tooling-1.29.0 | lib/gitlab_quality/test_tooling/summary_table.rb |