diff --git a/build.xml b/build.xml index cc69b8df..9c2b5c2b 100644 --- a/build.xml +++ b/build.xml @@ -65,13 +65,27 @@ - + + + + + + + + + + + diff --git a/utilities/acceptance-tests/script/output_manager.rb b/utilities/acceptance-tests/script/output_manager.rb index 7045819a..8ad8c5d2 100644 --- a/utilities/acceptance-tests/script/output_manager.rb +++ b/utilities/acceptance-tests/script/output_manager.rb @@ -30,6 +30,7 @@ require 'date' require 'fileutils' require File.expand_path('output_suite_parser', File.dirname(File.expand_path(__FILE__))) require File.expand_path('output_summary_formatter', File.dirname(File.expand_path(__FILE__))) +require File.expand_path('property_file_reader', File.dirname(File.expand_path(__FILE__))) class TestInfo attr :test_name, true @@ -141,26 +142,31 @@ class OutputManager # def initialize(properties) @output_directory = properties['output_directory'] - + test_root_directory = properties['test_root_directory'] @ignored_tests_file = File.expand_path("ignored_tests.txt", test_root_directory) sanity_checks_on_parameters() @log_file = File.expand_path("log_file.txt", @output_directory) - FileUtils::remove_file(@log_file) if File.exist?(@log_file) - @output_summary_file = File.expand_path("index.html", @output_directory) + @output_summary_file = File.expand_path("summary.html", @output_directory) FileUtils::remove_file(@output_summary_file) if File.exist?(@output_summary_file) @ignored_tests = load_list_of_ignored_tests() end + # Start with an empty log file. + # + def empty_log() + FileUtils::remove_file(@log_file) if File.exist?(@log_file) + end + # Write a message to the log file # def log(level, message) File.open(@log_file, File::CREAT | File::APPEND | File::WRONLY) do |f| - f.print("#{level} #{message}\n") + f.print("#{DateTime.now.strftime('%Y/%m/%d %H:%M:%S')} #{level} #{message}\n") end end @@ -191,13 +197,43 @@ class OutputManager # This is the big one -- produce the output summary. # def summarize() + log("INFO ", "Parsing test output") @osp = OutputSuiteParser.new(self, @log_file) @osp.parse() + log("INFO ", "Copying CSS file to output directory") copy_css_file() + + log("INFO ", "Producing summary file") File.open(@output_summary_file, File::CREAT | File::WRONLY) do |f| osf = OutputSummaryFormatter.new(@osp, @log_file) osf.format(f) end + + log("INFO ", "Summary complete") end -end \ No newline at end of file +end + +# +# +# ------------------------------------------------------------------------------------ +# Standalone calling. +# +# Do this if this program was called from the command line. That is, if the command +# expands to the path of this file. +# ------------------------------------------------------------------------------------ +# + +if File.expand_path($0) == File.expand_path(__FILE__) + if ARGV.length == 0 + raise("No arguments - usage is: ruby output_manager.rb ") + end + if !File.file?(ARGV[0]) + raise "File does not exist: '#{ARGV[0]}'." + end + + properties = PropertyFileReader.read(ARGV[0]) + + om = OutputManager.new(properties) + om.summarize() +end diff --git a/utilities/acceptance-tests/script/output_suite_parser.rb b/utilities/acceptance-tests/script/output_suite_parser.rb index f6d8d9c5..74b8692e 100644 --- a/utilities/acceptance-tests/script/output_suite_parser.rb +++ b/utilities/acceptance-tests/script/output_suite_parser.rb @@ -8,6 +8,8 @@ Parameters: -------------------------------------------------------------------------------- =end require 'date' +# This one is needed to get Time.parse() ????? Go figure. +require 'open-uri' class OutputSuiteParser attr :errors diff --git a/utilities/acceptance-tests/script/output_summary_formatter.rb b/utilities/acceptance-tests/script/output_summary_formatter.rb index 0ab957bc..8ad6ecc0 100644 --- a/utilities/acceptance-tests/script/output_summary_formatter.rb +++ b/utilities/acceptance-tests/script/output_summary_formatter.rb @@ -170,7 +170,7 @@ END_STATS if ignores.empty? f.print " \n" - f.print " No tests ignored.\n" + f.print " No tests ignored.\n" f.print " \n" else ignores.each do |t| diff --git a/utilities/acceptance-tests/script/run_acceptance_tests.rb b/utilities/acceptance-tests/script/run_acceptance_tests.rb index 1fe8373e..60a97216 100644 --- a/utilities/acceptance-tests/script/run_acceptance_tests.rb +++ b/utilities/acceptance-tests/script/run_acceptance_tests.rb @@ -205,10 +205,6 @@ class AcceptanceRunner @output_manager.log("ERROR", message) end - def create_summary_html() - @output_manager.summarize() - end - # ------------------------------------------------------------------------------------ public # ------------------------------------------------------------------------------------ @@ -226,14 +222,15 @@ class AcceptanceRunner sanity_checks_on_parameters() @database_cleanser = DatabaseCleanser.new(properties) + @output_manager = OutputManager.new(properties) - + @output_manager.empty_log() end - # Run all of the test suites and produce an output summary page. + # Run all of the test suites def run run_all_suites() - create_summary_html() + # To collate the output from the suites, use OutputManager.new(properties).summarize() end end