diff options
Diffstat (limited to 'scripts/merge-html-reports')
-rwxr-xr-x | scripts/merge-html-reports | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/scripts/merge-html-reports b/scripts/merge-html-reports deleted file mode 100755 index de300851990..00000000000 --- a/scripts/merge-html-reports +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -require 'nokogiri' - -main_report_file = ARGV.shift -unless main_report_file - puts 'usage: merge-html-reports <main-report> <base-artifact-url> [parallel reports...]' - exit 1 -end - -base_artifact_url = ARGV.shift -unless base_artifact_url - puts 'usage: merge-html-reports <main-report> <base-artifact-url> [parallel reports...]' - exit 1 -end - -# Create the base report with empty body tag -new_report = Nokogiri::HTML.parse(File.read(ARGV[0])) -new_report.at_css('body').remove -empty_body = Nokogiri::XML::Node.new('body', new_report) -new_report.at_css('head').add_next_sibling(empty_body) - -ARGV.each do |report_file| - report = Nokogiri::HTML.parse(File.read(report_file)) - - report.css('a').each do |link| - link_suffix = link['href'].slice(19..-1) - link['href'] = base_artifact_url + link_suffix - end - - header = report.css('div #rspec-header') - tests = report.css('dt[id^="example_group_"]') - - tests.each do |test| - title = test.parent - group = title.parent - script = title.css('script') - - if script.inner_html.include? 'makeYellow' - test.remove_class('passed') - test.add_class('not_implemented') - - group.remove_class('passed') - group.add_class('not_implemented') - header.add_class('not_implemented') - - script.remove - test.next_sibling.remove - test.next_sibling.remove - - elsif script.inner_html.include? 'makeRed' - test.remove_class('passed') - test.add_class('failed') - - group.remove_class('passed') - group.add_class('failed') - header.add_class('failed') - - script.remove - test.next_sibling.remove - test.next_sibling.remove - end - end - - duration = report.at_css('p#duration') - totals = report.at_css('p#totals') - - duration_script = report.css('div.results script')[-2] - totals_script = report.css('div.results script')[-1] - - duration_text = duration_script.text.slice(49..-3) - totals_text = totals_script.text.slice(47..-3) - - duration.inner_html = duration_text - totals.inner_html = totals_text - - duration_script.remove - totals_script.remove - - # Add the new result after the last one to keep the test order - new_report.css('body')[-1].add_next_sibling(report.at_css('body')) -end - -File.write(main_report_file, new_report) |