class Cornucopia::Util::Configuration

Attributes

configurations[RW]

Public Class Methods

add_log_file(log_file_name, options = {}) click to toggle source

Adds the specified log file to the list of log files to capture. If the log file is already in the list, the passed in options will be merged with the existing options. See Cornucopia::LogCapture

# File lib/cornucopia/util/configuration.rb, line 526
def add_log_file(log_file_name, options = {})
  Cornucopia::Util::Configuration.instance.configurations.user_log_files[log_file_name] ||= {}
  Cornucopia::Util::Configuration.instance.configurations.user_log_files[log_file_name] =
      Cornucopia::Util::Configuration.instance.configurations.user_log_files[log_file_name].merge options
end
analyze_find_exceptions() click to toggle source

This setting is used by the Capybara utilities.

When Capybara::Node.find throws an exception, if this is set, the system will try to use the FinderDiagnostics to output some diagnostic information about the page and the finder to try to assist in determining what happened.

# File lib/cornucopia/util/configuration.rb, line 620
def analyze_find_exceptions
  Cornucopia::Util::Configuration.instance.configurations.analyze_find_exceptions
end
analyze_find_exceptions=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 624
def analyze_find_exceptions=(value)
  Cornucopia::Util::Configuration.instance.configurations.analyze_find_exceptions = value
end
analyze_selector_exceptions() click to toggle source

This setting is used by the Capybara utilities.

When Capybara::Node.analyze_selector throws an exception, if this is set, the system will try to use the FinderDiagnostics to output some diagnostic information about the page and the selector to try to assist in determining what happened.

# File lib/cornucopia/util/configuration.rb, line 633
def analyze_selector_exceptions
  Cornucopia::Util::Configuration.instance.configurations.analyze_selector_exceptions
end
analyze_selector_exceptions=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 637
def analyze_selector_exceptions=(value)
  Cornucopia::Util::Configuration.instance.configurations.analyze_selector_exceptions = value
end
auto_open_report_after_generation(open_report, report_name = nil) click to toggle source

To make it easier to know about and to see the reports, this configuration will cause a report to be automatically opened if there is anything to report when the report is closed.

The posible values for report_name are:

nil
"rspec_report"
"cucumber_report"
"spinach_report"
# File lib/cornucopia/util/configuration.rb, line 704
def auto_open_report_after_generation(open_report, report_name = nil)
  Cornucopia::Util::Configuration.instance.configurations.open_report_settings[report_name || :default] = open_report
end
backup_logs_on_failure() click to toggle source
# File lib/cornucopia/util/configuration.rb, line 495
def backup_logs_on_failure
  Cornucopia::Util::Configuration.instance.configurations.backup_logs_on_failure
end
backup_logs_on_failure=(value) click to toggle source

backup_logs_on_failure causes the system to copy the log files at the end of the report cycle if there were any errors during the creation of the report system.

The system will try to grab the following log files:

* Rails.env.log
* any user specified logs

The log capture is done with a simple file copy.

Related options:

user_log_files
num_lines
add_log_file
remove_log_file
grab_logs
# File lib/cornucopia/util/configuration.rb, line 491
def backup_logs_on_failure=(value)
  Cornucopia::Util::Configuration.instance.configurations.backup_logs_on_failure = value
end
base_folder() click to toggle source

Sets or returns the name of the folder to generate reports into.

Default: “cornucopia_report”

# File lib/cornucopia/util/configuration.rb, line 744
def base_folder
  Cornucopia::Util::Configuration.instance.configurations.base_folder
end
base_folder=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 748
def base_folder=(value)
  Cornucopia::Util::Configuration.instance.configurations.base_folder = value
end
benchmark() click to toggle source

Turns benchmarking on or off.

Defaults to false.

# File lib/cornucopia/util/configuration.rb, line 782
def benchmark
  Cornucopia::Util::Configuration.instance.configurations.benchmark
end
benchmark=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 786
def benchmark=(value)
  Cornucopia::Util::Configuration.instance.configurations.benchmark = value
end
context_seed() click to toggle source
# File lib/cornucopia/util/configuration.rb, line 412
def context_seed
  Cornucopia::Util::Configuration.instance.configurations.rand_context_seed
end
context_seed=(value) click to toggle source

rand_context_seed is the seed value used to seed the srand function at the start of a context. This is done to allow tests with random elements in them to be repeatable. If a test fails, simply set Cornucopia::Util::Configuration.rand_context_seed to the value of the failed tests context_seed value (output in the stdout and the generated report) and run the test again. This should re-run the exact same test, resulting in a repeatable test even with randomization in it.

# File lib/cornucopia/util/configuration.rb, line 407
def context_seed=(value)
  Cornucopia::Util::Configuration.instance.configurations.rand_context_seed = value
  srand(value) if value
end
default_num_lines=(value) click to toggle source

default_num_lines sets the default number of lines to extract from the log file

# File lib/cornucopia/util/configuration.rb, line 518
def default_num_lines=(value)
  Cornucopia::Util::Configuration.instance.configurations.default_num_lines = value
end
default_report_configuration(report_name) click to toggle source

returns the report configuration object for that type of report

values for report_name:

:rspec
:cucumber
:spinach
:capybara_page_diagnostics
# File lib/cornucopia/util/configuration.rb, line 573
def default_report_configuration(report_name)
  Cornucopia::Util::Configuration.instance.configurations.default_configuration[report_name].try :clone
end
grab_logs() click to toggle source
# File lib/cornucopia/util/configuration.rb, line 472
def grab_logs
  Cornucopia::Util::Configuration.instance.configurations.grab_logs
end
grab_logs=(value) click to toggle source

grab_logs indicates if the system should try to automatically grab a tail of the log file if outputing a diagnostics report.

The system will try to grab the following log files:

* Rails.env.log
* any user specified logs

The log capture is done by reading from the end of the file of the log file. If the log file cannot be found, or if the system cannot open the file (no access rights, etc.) nothing will be output.

Related options:

user_log_files
num_lines
add_log_file
remove_log_file
# File lib/cornucopia/util/configuration.rb, line 468
def grab_logs=(value)
  Cornucopia::Util::Configuration.instance.configurations.grab_logs = value
end
ignore_finder_errors_on_success() click to toggle source

This setting is used by the report builder.

If a test has finder errors but still succeeds, ignore the errors and do not report them. This is useful for tests that test the existence of an element on the page using something like: expect(my_page).not_to have_page_element

# File lib/cornucopia/util/configuration.rb, line 646
def ignore_finder_errors_on_success
  Cornucopia::Util::Configuration.instance.configurations.ignore_finder_errors_on_success
end
ignore_finder_errors_on_success=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 650
def ignore_finder_errors_on_success=(value)
  Cornucopia::Util::Configuration.instance.configurations.ignore_finder_errors_on_success = value
end
ignore_has_selector_errors() click to toggle source

This setting is used by the matcher analysis.

Generally speaking has_selector? is allowed to return true or false without needing to be to analyzed. So, the system ignores has_selector? failures and doesn't output an analysis.

This will perform an analysis for each has_selector? failure.

# File lib/cornucopia/util/configuration.rb, line 660
def ignore_has_selector_errors
  Cornucopia::Util::Configuration.instance.configurations.ignore_has_selector_errors
end
ignore_has_selector_errors=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 664
def ignore_has_selector_errors=(value)
  Cornucopia::Util::Configuration.instance.configurations.ignore_has_selector_errors = value
end
new() click to toggle source
# File lib/cornucopia/util/configuration.rb, line 16
def initialize
  @configurations = Cornucopia::Util::GenericSettings.new

  configurations.order_seed                       = nil
  configurations.rand_seed                        = nil
  configurations.rand_context_seed                = nil
  configurations.rand_suite_seed                  = nil
  configurations.user_log_files                   = {}
  configurations.default_num_lines                = 500
  configurations.grab_logs                        = true
  configurations.backup_logs_on_failure           = false
  configurations.print_timeout_min                = 10
  configurations.selenium_cache_retry_count       = 5
  configurations.analyze_find_exceptions          = true
  configurations.analyze_selector_exceptions      = true
  configurations.ignore_finder_errors_on_success  = true
  configurations.ignore_has_selector_errors       = true
  configurations.record_test_start_and_end_in_log = true
  configurations.record_test_start_and_end_format = "******** %{start_end}: %{test_name}"
  configurations.retry_with_found                 = false
  configurations.retry_match_with_found           = false
  configurations.open_report_settings             = { default: false }
  configurations.base_folder                      = "cornucopia_report"
  configurations.benchmark                        = false
  configurations.report_postfix                   = ""

  # configurations.alternate_retry            = false

  configurations.default_configuration = {
      rspec:                       {
          min_fields:           [
                                    :example__full_description,
                                    :example__location,
                                    :example__exception__message,
                                    :example__exception__backtrace
                                ],
          more_info_fields:     [
                                    :example__exception__class__name,
                                    :example,
                                    :seeds__seed_value,
                                    :seeds__context_seed_value,
                                    :seeds__suite_seed_value,
                                    :example__example_group_instance,
                                    :example__metadata__caller,
                                    {
                                        report_element: :rspec__configuration__seed,
                                        report_options: { ignore_missing: true }
                                    },
                                    {
                                        report_element: :rspec__configuration__ordering_manager__seed,
                                        report_options: { ignore_missing: true }
                                    },
                                    :logs,
                                    :capybara_page_diagnostics,
                                    {
                                        report_element: :example__exception__all_exceptions,
                                        report_options: { ignore_missing:  true,
                                                          format_object:   Cornucopia::Util::MultipleExceptionFormatter,
                                                          format_function: :format_backtrace }
                                    }
                                ],
          expand_fields:        [
                                    :example,
                                    :example__example_group_instance____memoized,
                                    :example__example_group_instance____memoized__memoized,
                                    :example__example_group_instance__response,
                                    :example__example_group_instance__controller,
                                    :example__example_group_instance__request,
                                    :example__example_group_instance__request__env,
                                    :example__example_group_instance
                                ],
          expand_inline_fields: [
                                    :example__example_group_instance____memoized,
                                    :example__example_group_instance____memoized__memoized
                                ],
          exclude_fields:       [
                                    :example__fixture_connections,
                                    :example,
                                    :example__reporter,
                                    :example__example_group_instance,
                                    :example__example_group_instance____memoized__mutex,
                                    :example__example_group_instance__controller___request,
                                    :example__example_group_instance__controller___response,
                                    :example__example_group_instance__controller___routes,
                                    :example__example_group_instance__request__filtered_env,
                                    :example__example_group_instance__routes,
                                    :example__example_group_instance___routes,
                                    "example__example_group_instance__request__env__action_dispatch.routes",
                                    "example__example_group_instance__request__env__action_controller.instance",
                                ],
      },
      cucumber:                    {
          min_fields:           [
                                    {
                                        report_element: :scenario__feature__title,
                                        report_options: { label: "feature", ignore_missing: true }
                                    },
                                    {
                                        report_element: :scenario__feature__name,
                                        report_options: { label: "feature", ignore_missing: true }
                                    },
                                    {
                                        report_element: :scenario__feature__location,
                                        # report_options: { format: ->(value) { "#{value.file}:#{value.line}" } }
                                        report_options: { format_object:   Cornucopia::Util::CucumberFormatter,
                                                          format_function: :format_location }
                                    },
                                    {
                                        report_element: :scenario__title,
                                        report_options: { label: "scenario" }
                                    },
                                    {
                                        report_element: :scenario__location,
                                        report_options: { format_object:   Cornucopia::Util::CucumberFormatter,
                                                          format_function: :format_location }
                                    },
                                    :scenario__exception__message,
                                    :scenario__exception__backtrace
                                ],
          more_info_fields:     [
                                    :scenario__exception__class__name,
                                    :scenario,
                                    :scenario__seed_value,
                                    # :scenario__feature__comment,
                                    :scenario__feature__keyword,
                                    :scenario__feature__description,
                                    {
                                        report_element: :scenario__feature__gherkin_statement,
                                        report_options: { ignore_missing: true }
                                    },
                                    :scenario__feature__tags,
                                    # :scenario__current_visitor__configuration,
                                    :cucumber,
                                    :logs,
                                    :capybara_page_diagnostics,
                                    {
                                        report_element: :scenario__exception__all_exceptions,
                                        report_options: { ignore_missing: true }
                                    }
                                ],
          expand_fields:        [
                                    :scenario,
                                    :cucumber
                                ],
          expand_inline_fields: [
                                ],
          exclude_fields:       [
                                    :scenario__background,
                                    :scenario__feature,
                                    :scenario__current_visitor,
                                    :scenario__raw_steps,
                                    :scenario__title,
                                    :scenario__location,
                                    :cucumber____cucumber_runtime,
                                    :cucumber____natural_language,
                                    :cucumber___rack_test_sessions,
                                    :cucumber___rack_mock_sessions,
                                    :cucumber__integration_session
                                ]
      },
      cucumber_outline:            {
          min_fields:           [
                                    {
                                        report_element: :scenario__scenario_outline__name,
                                        report_options: { label: "feature_outline" }
                                    },
                                    {
                                        report_element: :scenario__name,
                                        report_options: { label: "scenario_example" }
                                    },
                                    {
                                        report_element: :scenario__scenario_outline__example_sections__0__0__0,
                                        # report_options: { format: ->(value) { "#{value.file}:#{value.line}" } }
                                        report_options: { format_object:   Cornucopia::Util::CucumberFormatter,
                                                          format_function: :format_location }
                                    },
                                    :scenario__exception__message,
                                    :scenario__exception__backtrace
                                ],
          more_info_fields:     [
                                    :scenario__exception__class__name,
                                    :scenario,
                                    :scenario__scenario_outline__example_sections__0__1__comments,
                                    :scenario__scenario_outline__example_sections__0__1__keyword,
                                    :scenario__scenario_outline__example_sections__0__1__description,
                                    :scenario__source_tag_names,
                                    :scenario__scenario_outline__example_sections__0__1__tags,
                                    :scenario__scenario_outline__example_sections__0__0,
                                    :scenario__scenario_outline,
                                    :cucumber,
                                    :logs,
                                    :capybara_page_diagnostics,
                                    {
                                        report_element: :scenario__exception__all_exceptions,
                                        report_options: { ignore_missing: true }
                                    }
                                ],
          expand_fields:        [
                                    :scenario,
                                    :scenario__scenario_outline,
                                    :cucumber
                                ],
          expand_inline_fields: [
                                ],
          exclude_fields:       [
                                    :scenario__background,
                                    :scenario__scenario_outline__background,
                                    :scenario__table,
                                    :scenario__feature,
                                    :scenario__current_visitor,
                                    :scenario__raw_steps,
                                    :scenario__title,
                                    :cucumber____cucumber_runtime,
                                    :cucumber____natural_language,
                                    :cucumber___rack_test_sessions,
                                    :cucumber___rack_mock_sessions,
                                    :cucumber__integration_session
                                ]
      },
      spinach:                     {
          min_fields:           [
                                    :failure_description,
                                    :running_scenario__feature__name,
                                    :running_scenario__name,
                                    :running_scenario__line,
                                    :step_data__name,
                                    :step_data__line,
                                    :exception__message,
                                    :exception__backtrace
                                ],
          more_info_fields:     [
                                    :exception__class__name,
                                    :running_scenario__feature__tags,
                                    :running_scenario,
                                    :step_data,
                                    :step_definitions,
                                    :logs,
                                    :capybara_page_diagnostics,
                                    {
                                        report_element: :exception__all_exceptions,
                                        report_options: { ignore_missing: true }
                                    }
                                ],
          expand_fields:        [
                                    :running_scenario,
                                    :step_data,
                                    :step_definitions
                                ],
          expand_inline_fields: [
                                ],
          exclude_fields:       [
                                    :running_scenario__feature,
                                    :step_data__scenario__feature,
                                    :running_scenario__name,
                                    :running_scenario__line,
                                    :step_data__name,
                                    :step_data__line
                                ]
      },
      capybara_page_diagnostics:   {
          min_fields:           [
                                    :capybara__page_url,
                                    :capybara__title,
                                    :capybara__screen_shot
                                ],
          more_info_fields:     [
                                    :capybara,
                                    :capybara__other_windows,
                                ],
          expand_fields:        [
                                    :capybara,
                                    :capybara__other_windows,
                                    "capybara__other_windows__*",
                                ],
          expand_inline_fields: [
                                    :capybara,
                                ],
          exclude_fields:       [
                                    :capybara__page_url,
                                    :capybara__screen_shot,
                                    :capybara__title,
                                    :capybara__options,
                                    :capybara__report,
                                    :capybara__table,
                                    :capybara__unsupported_list,
                                    :capybara__allow_other_windows,
                                    :capybara__iterating,
                                    :capybara__session,
                                    :capybara__driver,
                                    :capybara__window_handles,
                                    :capybara__current_window,
                                    "capybara__other_windows__*__options",
                                    "capybara__other_windows__*__report",
                                    "capybara__other_windows__*__table",
                                    "capybara__other_windows__*__unsupported_list",
                                    "capybara__other_windows__*__allow_other_windows",
                                    "capybara__other_windows__*__iterating",
                                    "capybara__other_windows__*__session",
                                    "capybara__other_windows__*__driver",
                                    "capybara__other_windows__*__window_handles",
                                    "capybara__other_windows__*__current_window"
                                ],
          leaf_options:         [
                                    { report_element: [:html_source,
                                                       :html_frame,
                                                       :screen_shot
                                                      ],
                                      report_options: { prevent_shrink:      true,
                                                        exclude_code_block:  true,
                                                        do_not_pretty_print: true
                                      }
                                    },
                                    { report_element: [:html_file],
                                      report_options: { exclude_code_block: true },
                                    }
                                ]
      },
      capybara_finder_diagnostics: {
          min_fields:           [
                                    :finder__function_name,
                                    :finder__args__0,
                                    :finder__search_args,
                                    :finder__options,
                                    :exception__message,
                                    :exception__backtrace
                                ],
          more_info_fields:     [
                                    :exception__class__name,
                                    :finder,
                                    :capybara_page_diagnostics,
                                    {
                                        report_element: :exception__all_exceptions,
                                        report_options: { ignore_missing: true }
                                    }
                                ],
          expand_fields:        [
                                    :finder,
                                    :finder__args,
                                    :finder__all_elements,
                                    :finder__all_other_elements,
                                    "finder__all_elements__*",
                                    "finder__all_other_elements__*",
                                    "finder__all_elements__*__native_size",
                                    "finder__all_other_elements__*__native_size",
                                    "finder__all_elements__*__elem_location",
                                    "finder__all_other_elements__*__elem_location",
                                    :finder__search_args,
                                    :finder__options
                                ],
          expand_inline_fields: [
                                    :finder
                                ],
          exclude_fields:       [
                                    :finder__return_value,
                                    :finder__function_name,
                                    :finder__args__0,
                                    :finder__search_args,
                                    :finder__options,
                                    :finder__report_options,
                                    :finder__test_object,
                                    "finder__all_elements__*__found_element",
                                    "finder__all_other_elements__*__found_element"
                                ]
      }
  }

  configurations.configured_reports = {}
end
num_lines(log_file_name = nil) click to toggle source

num_lines returns the number of lines that will be grabbed for a file. If no file name is supplied, or the name does not match a user file, the default log length will returned.

# File lib/cornucopia/util/configuration.rb, line 512
def num_lines(log_file_name = nil)
  Cornucopia::Util::Configuration.instance.configurations.user_log_files[log_file_name].try(:[], :num_lines) ||
      Cornucopia::Util::Configuration.instance.configurations.default_num_lines
end
open_report_after_generation(report_name) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 708
def open_report_after_generation(report_name)
  open_report = Cornucopia::Util::Configuration.instance.configurations.open_report_settings[report_name]
  open_report = Cornucopia::Util::Configuration.instance.configurations.open_report_settings[:default] if open_report.nil?
  open_report
end
order_seed() click to toggle source
# File lib/cornucopia/util/configuration.rb, line 448
def order_seed
  Cornucopia::Util::Configuration.instance.configurations.order_seed
end
order_seed=(value) click to toggle source

order_seed is the seed value used to set the order that randomly ordered tests are run in. This is provided as a convenience method. I think it is easier to set this in rails_helper than it is to set it on the command line. This also provides a uniform method to do it.

# File lib/cornucopia/util/configuration.rb, line 434
def order_seed=(value)
  Cornucopia::Util::Configuration.instance.configurations.order_seed = value

  if value
    if RSpec.configuration.respond_to?(:seed)
      RSpec.configuration.seed = value
    else
      # :nocov:
      RSpec.configuration.ordering_manager.seed = value
      # :nocov:
    end
  end
end
print_timeout_min() click to toggle source

Sets or returns the minimum amount of time in seconds to allow for the printing of variables. If it is available, the larger of this value and Capybara.default_wait_time will be used.

This value exists to prevent the printing of a value on a report from taking too long and holding up the system. If it takes longer than this amount of time to get the value it probably isn't diagnostically important.

Default: 10

print_timeout_min=(value) click to toggle source
record_test_start_and_end_format() click to toggle source

This setting is used by the test system hooks.

This value specifies the text that is output into the log file at the start/end of a test. Two variables are passed into the format string to be inserted into the text:

* %{start_end} - This will be either "Start" or "End"
* %{test_name} - This will the the name of the test.
# File lib/cornucopia/util/configuration.rb, line 771
def record_test_start_and_end_format
  Cornucopia::Util::Configuration.instance.configurations.record_test_start_and_end_format
end
record_test_start_and_end_format=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 775
def record_test_start_and_end_format=(value)
  Cornucopia::Util::Configuration.instance.configurations.record_test_start_and_end_format = value
end
record_test_start_and_end_in_log() click to toggle source

This setting is used by the test system hooks.

If true (the default) this will cause the system to output a line to the Rails log indicating when a test starts and when it ends.

# File lib/cornucopia/util/configuration.rb, line 756
def record_test_start_and_end_in_log
  Cornucopia::Util::Configuration.instance.configurations.record_test_start_and_end_in_log
end
record_test_start_and_end_in_log=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 760
def record_test_start_and_end_in_log=(value)
  Cornucopia::Util::Configuration.instance.configurations.record_test_start_and_end_in_log = value
end
remove_log_file(log_file_name) click to toggle source

Removes the specified log file from the list of log files to capture. NOTE: You cannot remove the default log file.

# File lib/cornucopia/util/configuration.rb, line 534
def remove_log_file(log_file_name)
  Cornucopia::Util::Configuration.instance.configurations.user_log_files.delete log_file_name
end
report_configuration(report_name) click to toggle source

returns the report configuration object for that type of report

values for report_name:

:rspec
:cucumber
:spinach
:capybara_page_diagnostics
# File lib/cornucopia/util/configuration.rb, line 545
def report_configuration(report_name)
  Cornucopia::Util::Configuration.instance.configurations.configured_reports[report_name] ||=
      Cornucopia::Util::ConfiguredReport.new(Cornucopia::Util::Configuration.instance.configurations.default_configuration[report_name])
end
report_postfix() click to toggle source

Adds a postfix to report names

Defaults to empty string.

# File lib/cornucopia/util/configuration.rb, line 793
def report_postfix
  Cornucopia::Util::Configuration.instance.configurations.report_postfix
end
report_postfix=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 797
def report_postfix=(value)
  Cornucopia::Util::Configuration.instance.configurations.report_postfix = value
end
retry_match_with_found() click to toggle source

Sometimes, the analysis process found the element when it wasn't found other ways. This will cause the match accessor to try again with the found element.

The default is true because I have been getting a fair number of false negatives.

# File lib/cornucopia/util/configuration.rb, line 687
def retry_match_with_found
  Cornucopia::Util::Configuration.instance.configurations.retry_match_with_found
end
retry_match_with_found=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 691
def retry_match_with_found=(value)
  Cornucopia::Util::Configuration.instance.configurations.retry_match_with_found = value
end
retry_with_found() click to toggle source

Sometimes, the analysis process found the element when it wasn't found other ways. This will cause the finder to try again with the found element.

The default is false because I haven't seen this be useful in a while.

WARNING: Using this is unsafe. If you use it, you could get false positive

results in your test.
# File lib/cornucopia/util/configuration.rb, line 675
def retry_with_found
  Cornucopia::Util::Configuration.instance.configurations.retry_with_found
end
retry_with_found=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 679
def retry_with_found=(value)
  Cornucopia::Util::Configuration.instance.configurations.retry_with_found = value
end
seed() click to toggle source
# File lib/cornucopia/util/configuration.rb, line 397
def seed
  Cornucopia::Util::Configuration.instance.configurations.rand_seed
end
seed=(value) click to toggle source

rand_seed is the seed value used to seed the srand function at the start of a test suite. This is done to allow tests with random elements in them to be repeatable. If a test fails, simply set Cornucopia::Util::Configuration.rand_seed to the value of the failed tests seed value (output in the stdout and the generated report) and run the test again. This should re-run the exact same test, resulting in a repeatable test even with randomization in it.

# File lib/cornucopia/util/configuration.rb, line 392
def seed=(value)
  Cornucopia::Util::Configuration.instance.configurations.rand_seed = value
  srand(value) if value
end
selenium_cache_retry_count() click to toggle source

The Selenium driver can throw a StaleElementReferenceError exception sometimes. I often see it with animated items like dialog boxes and the like. When the system is looping trying to find the element or stop seeing it.

Because the element likely just disappeared between when it was found and when it was returned, trying again will often make the problem go away.

The default for this setting is 5 which will retry the find function if this error occurs.

NOTE: This should already be the default action (basically) for the Selenium

driver, yet from a purely practical standpoint, this seems to be a problem
that I've run into a lot.  I am doing it this way to see if I can reduce the
the occurrence of it.
# File lib/cornucopia/util/configuration.rb, line 607
def selenium_cache_retry_count
  Cornucopia::Util::Configuration.instance.configurations.selenium_cache_retry_count
end
selenium_cache_retry_count=(value) click to toggle source
# File lib/cornucopia/util/configuration.rb, line 611
def selenium_cache_retry_count=(value)
  Cornucopia::Util::Configuration.instance.configurations.selenium_cache_retry_count = value
end
set_report_configuration(report_name, configuration) click to toggle source

sets the report configuration object for that type of report from a configuration has that is passed in

values for report_name:

:rspec
:cucumber
:spinach
:capybara_page_diagnostics
# File lib/cornucopia/util/configuration.rb, line 557
def set_report_configuration(report_name, configuration)
  if configuration.is_a?(Cornucopia::Util::ConfiguredReport)
    Cornucopia::Util::Configuration.instance.configurations.configured_reports[report_name] = configuration
  else
    Cornucopia::Util::Configuration.instance.configurations.configured_reports[report_name] =
        Cornucopia::Util::ConfiguredReport.new(configuration)
  end
end
suite_seed() click to toggle source
# File lib/cornucopia/util/configuration.rb, line 427
def suite_seed
  Cornucopia::Util::Configuration.instance.configurations.rand_suite_seed
end
suite_seed=(value) click to toggle source

rand_suite_seed is the seed value used to seed the srand function at the start of a context. This is done to allow tests with random elements in them to be repeatable. If a test fails, simply set Cornucopia::Util::Configuration.rand_suite_seed to the value of the failed tests suite_seed value (output in the stdout and the generated report) and run the test again. This should re-run the exact same test, resulting in a repeatable test even with randomization in it.

# File lib/cornucopia/util/configuration.rb, line 422
def suite_seed=(value)
  Cornucopia::Util::Configuration.instance.configurations.rand_suite_seed = value
  srand(value) if value
end
user_log_files() click to toggle source

user_log_files returns a hash of all of the log files which the user has specified are to be grabbed.

The keys are the relative paths of the log files to be grabbed, and the values are the options specified for the files. The values may be an empty hash.

# File lib/cornucopia/util/configuration.rb, line 505
def user_log_files
  Cornucopia::Util::Configuration.instance.configurations.user_log_files.clone
end