Class: Simulacrum::Browserstack::Runner
- Inherits:
-
Runner
- Object
- Runner
- Simulacrum::Browserstack::Runner
- Defined in:
- lib/simulacrum/browserstack/runner.rb
Overview
A Runner Class for Browserstack that handles creating a Browserstack tunnel, closing it when done. Also handles running the suite in parallel.
Defined Under Namespace
Classes: NoRemoteSessionsAvailable
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize ⇒ Runner
constructor
A new instance of Runner.
Constructor Details
#initialize ⇒ Runner
Returns a new instance of Runner.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/simulacrum/browserstack/runner.rb', line 25 def initialize start_timer @username = Simulacrum..username @apikey = Simulacrum..apikey @app_ports = app_ports @api = Simulacrum::Browserstack::API.new(@username, @apikey) @tunnel = Simulacrum::Browserstack::Tunnel.new(@username, @apikey, @app_ports) set_global_env execute summarize_results summarize_exit_codes ensure @tunnel.close if @tunnel end |
Instance Method Details
#execute ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/simulacrum/browserstack/runner.rb', line 42 def execute Simulacrum.logger.info('BrowserStack') { "Using runner with #{processes} remote workers" } @process_exit_codes, @process_results = Parallel.map_with_index(browsers, in_processes: processes) do |(name, caps), index| begin ensure_available_remote_runner configure_app_port(index) configure_environment(name, caps) configure_browser_setting(name) exit_code = run [exit_code, { results: dump_results }] rescue SystemExit exit 1 ensure quit_browser end end.transpose ensure stop_timer end |