class Applitools::Selenium::VisualGridRunner
Constants
- EMPTY_QUEUE
rubocop:disable Style/MutableConstant
Attributes
all_eyes[RW]
put_cache[RW]
queue[RW]
render_queue[RW]
rendering_info[RW]
resource_cache[RW]
Public Class Methods
new(concurrent_open_sessions = 10)
click to toggle source
Calls superclass method
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 12 def initialize(concurrent_open_sessions = 10) super() 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
Public Instance Methods
enqueue_render_task(render_task)
click to toggle 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
get_all_test_results(throw_exception = false)
click to toggle source
Calls superclass method
# 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
init()
click to toggle 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
open(eyes)
click to toggle source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 29 def open(eyes) all_eyes << eyes end
stop()
click to toggle 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
universal_eyes_manager_config()
click to toggle 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
all_running_tests()
click to toggle source
# File lib/applitools/selenium/visual_grid/visual_grid_runner.rb, line 70 def all_running_tests all_eyes.collect(&:test_list).flatten end
all_running_tests_by_score()
click to toggle 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
diffs_found_error_message(result)
click to toggle 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
get_task_queue()
click to toggle source
rubocop:disable Style/AccessorMethodName
# 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
new_test_error_message(result)
click to toggle source
rubocop:enable Style/AccessorMethodName
# 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
test_failed_error_message(result)
click to toggle 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