class Applitools::Selenium::VisualGridRunner
Constants
- EMPTY_QUEUE
-
rubocop:disable Style/MutableConstant
Attributes
Public Class Methods
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 12 def initialize(concurrent_open_sessions = 10, mask_log = false) super(mask_log=mask_log) self.all_eyes = [] self.render_queue = [] @thread_pool = Applitools::Selenium::VGThreadPool.new(concurrent_open_sessions) self.resource_cache = Applitools::Selenium::ResourceCache.new self.put_cache = Applitools::Selenium::ResourceCache.new init end
Calls superclass method
Public Instance Methods
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 33 def enqueue_render_task(render_task) render_queue.push render_task if render_task.is_a? Applitools::Selenium::RenderTask end
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 46 def get_all_test_results(throw_exception = false) all_tasks_completed = proc do all_running_tests.count == 0 || (states = all_running_tests.map(&:state_name).uniq).count == 1 && states.first == :completed end sleep 0.5 until all_tasks_completed.call failed_results = all_test_results.select { |r| !r.as_expected? } failed_results.each do |r| exception = Applitools::NewTestError.new new_test_error_message(r), r if r.new? exception = Applitools::DiffsFoundError.new diffs_found_error_message(r), r if r.unresolved? && !r.new? exception = Applitools::TestFailedError.new test_failed_error_message(r), r if r.failed? aggregate_exceptions(r, exception) end super end
Calls superclass method
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 22 def init @thread_pool.on_next_task_needed do (task = get_task_queue.pop).is_a?(Applitools::Selenium::VGTask) ? task : nil end @thread_pool.start end
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 29 def open(eyes) all_eyes << eyes end
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 37 def stop sleep 0.5 while all_running_tests.map(&:score).reduce(0, :+) > 0 @thread_pool.stop end
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 64 def universal_eyes_manager_config Applitools::UniversalEyesManagerConfig.vg(@thread_pool.concurrency) end
Private Instance Methods
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 70 def all_running_tests all_eyes.collect(&:test_list).flatten end
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 74 def all_running_tests_by_score all_running_tests.sort { |x, y| y.score <=> x.score } end
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 96 def diffs_found_error_message(result) original_results = result.original_results "Test '#{original_results['name']}' " \ "of '#{original_results['appname']}' " \ "detected differences! See details at #{original_results['appUrls']['session']}" end
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 79 def get_task_queue test_to_run = if render_queue.empty? all_running_tests_by_score.first else self end test_to_run ? test_to_run.queue : EMPTY_QUEUE end
rubocop:disable Style/AccessorMethodName
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 89 def new_test_error_message(result) original_results = result.original_results "New test '#{original_results['name']}' " \ "of '#{original_results['appName']}' " \ "Please approve the baseline at #{original_results['appUrls']['session']} " end
rubocop:enable Style/AccessorMethodName
Source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 103 def test_failed_error_message(result) original_results = result.original_results "Test '#{original_results['name']}' of '#{original_results['appName']}' " \ "is failed! See details at #{original_results['appUrls']['session']}" end