require ::File.expand_path("../cornucopia", File.dirname(__FILE__)) require ::File.expand_path("../cornucopia/factory_girl/dynamic_association", File.dirname(__FILE__)) load ::File.expand_path("capybara/install_finder_extensions.rb", File.dirname(__FILE__)) load ::File.expand_path("capybara/install_matcher_extensions.rb", File.dirname(__FILE__)) load ::File.expand_path("site_prism/install_element_extensions.rb", File.dirname(__FILE__)) Spinach.hooks.before_scenario do |scenario, step_definitions| @running_scenario = scenario seed_value = Cornucopia::Util::Configuration.seed || 100000000000000000000000000000000000000 + rand(899999999999999999999999999999999999999) scenario.instance_variable_set :@seed_value, seed_value end Spinach.hooks.after_scenario do |scenario, step_definitions| @running_scenario = nil end Spinach.hooks.on_failed_step do |step_data, exception, location, step_definitions| debug_failed_step("Failure", step_data, exception, location, step_definitions) end Spinach.hooks.on_error_step do |step_data, exception, location, step_definitions| debug_failed_step("Error", step_data, exception, location, step_definitions) end def debug_failed_step(failure_description, step_data, exception, location, step_definitions) seed_value = @running_scenario.instance_variable_get(:@seed_value) puts ("random seed for testing was: #{seed_value}") Cornucopia::Util::ReportBuilder.current_report. within_section("Test Error: #{@running_scenario.feature.name}") do |report| configured_report = Cornucopia::Util::Configuration.report_configuration :spinach configured_report.add_report_objects failure_description: "#{failure_description} at:, #{location[0]}:#{location[1]}", running_scenario: @running_scenario, step_data: step_data, exception: exception, location: location, step_definitions: step_definitions configured_report.generate_report(report) end end Spinach.hooks.after_run do |status| Cornucopia::Util::ReportBuilder.current_report.close end Cornucopia::Util::ReportBuilder.new_report "spinach_report"