plugin_reportinator.rb 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. require 'constants'
  2. require 'defaults'
  3. class PluginReportinator
  4. constructor :plugin_reportinator_helper, :plugin_manager, :reportinator
  5. def setup
  6. @test_results_template = nil
  7. end
  8. def set_system_objects(system_objects)
  9. @plugin_reportinator_helper.ceedling = system_objects
  10. end
  11. def fetch_results(results_path, test, options={:boom => false})
  12. return @plugin_reportinator_helper.fetch_results( File.join(results_path, test), options )
  13. end
  14. def generate_banner(message)
  15. return @reportinator.generate_banner(message)
  16. end
  17. def assemble_test_results(results_list, options={:boom => false})
  18. aggregated_results = get_results_structure
  19. results_list.each do |result_path|
  20. results = @plugin_reportinator_helper.fetch_results( result_path, options )
  21. @plugin_reportinator_helper.process_results(aggregated_results, results)
  22. end
  23. return aggregated_results
  24. end
  25. def register_test_results_template(template)
  26. @test_results_template = template if (@test_results_template.nil?)
  27. end
  28. def run_test_results_report(hash, verbosity=Verbosity::NORMAL, &block)
  29. run_report( $stdout,
  30. ((@test_results_template.nil?) ? DEFAULT_TESTS_RESULTS_REPORT_TEMPLATE : @test_results_template),
  31. hash,
  32. verbosity,
  33. &block )
  34. end
  35. def run_report(stream, template, hash=nil, verbosity=Verbosity::NORMAL)
  36. failure = nil
  37. failure = yield() if block_given?
  38. @plugin_manager.register_build_failure( failure )
  39. @plugin_reportinator_helper.run_report( stream, template, hash, verbosity )
  40. end
  41. private ###############################
  42. def get_results_structure
  43. return {
  44. :successes => [],
  45. :failures => [],
  46. :ignores => [],
  47. :stdout => [],
  48. :counts => {:total => 0, :passed => 0, :failed => 0, :ignored => 0, :stdout => 0}
  49. }
  50. end
  51. end