bugsnag-maze-runner 9.21.0 → 9.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/features/support/internal_hooks.rb +6 -1
- data/lib/maze/client/appium/base_client.rb +1 -1
- data/lib/maze/client/appium/bs_client.rb +1 -1
- data/lib/maze/client/selenium/base_client.rb +1 -1
- data/lib/maze/client/selenium/bs_client.rb +1 -1
- data/lib/maze/driver/appium.rb +22 -10
- data/lib/maze/driver/browser.rb +27 -0
- data/lib/maze/hooks/appium_hooks.rb +2 -2
- data/lib/maze.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5b4f925503cc54630e686c2e040e7400f317f0cf53ec5e0355452493ae7f3fe0
|
|
4
|
+
data.tar.gz: 1ba0c44262e72fe909d9ebdea4f8386cb7463a50ed9e868ecdc4d1bfcb83fddc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 29948d516684ee1448456110c5427b4db74bba4849b7e2aad4d3601bd5f5b332036d9fa0b64b84eda2d71c209ac4cad4aca04ee346856c58fcbde45605e217cb
|
|
7
|
+
data.tar.gz: 30869b1f195fd936f8f795721844a28ede9fa620581284408c391b848ca96e399628a08eb6dea3a5a2a062f99cddeb7062d9decef1b701170dd02aed8b76ee73
|
|
@@ -103,7 +103,12 @@ end
|
|
|
103
103
|
Before do |scenario|
|
|
104
104
|
Maze.scenario = Maze::Api::Cucumber::Scenario.new(scenario)
|
|
105
105
|
|
|
106
|
-
#
|
|
106
|
+
# Skip scenario if the driver it needs has failed
|
|
107
|
+
if (Maze.mode == :appium || Maze.mode == :browser) && Maze.driver.failed?
|
|
108
|
+
skip_this_scenario
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Default to no dynamic retry
|
|
107
112
|
Maze.dynamic_retry = false
|
|
108
113
|
|
|
109
114
|
if ENV['BUILDKITE']
|
|
@@ -67,7 +67,7 @@ module Maze
|
|
|
67
67
|
|
|
68
68
|
def log_run_intro
|
|
69
69
|
# Log a link to the BrowserStack session search dashboard
|
|
70
|
-
url = "https://app-automate.browserstack.com/
|
|
70
|
+
url = "https://app-automate.browserstack.com/projects/#{project_name_capabilities[:project]}/builds/#{Maze.run_uuid}/1?tab=tests"
|
|
71
71
|
$logger.info Maze::Loggers::LogUtil.linkify(url, 'BrowserStack session(s)')
|
|
72
72
|
end
|
|
73
73
|
|
|
@@ -86,7 +86,7 @@ module Maze
|
|
|
86
86
|
|
|
87
87
|
def log_session_info
|
|
88
88
|
# Log a link to the BrowserStack session search dashboard
|
|
89
|
-
url = "https://automate.browserstack.com/
|
|
89
|
+
url = "https://automate.browserstack.com/projects/#{project_name_capabilities[:project]}/builds/#{Maze.run_uuid}/1?tab=tests"
|
|
90
90
|
$logger.info Maze::Loggers::LogUtil.linkify url, 'BrowserStack session(s)'
|
|
91
91
|
end
|
|
92
92
|
end
|
data/lib/maze/driver/appium.rb
CHANGED
|
@@ -20,7 +20,7 @@ module Maze
|
|
|
20
20
|
attr_reader :device_type
|
|
21
21
|
|
|
22
22
|
# @!attribute [r] capabilities
|
|
23
|
-
# @return [Hash] The capabilities used to launch the
|
|
23
|
+
# @return [Hash] The capabilities used to launch the Appium session
|
|
24
24
|
attr_reader :capabilities
|
|
25
25
|
|
|
26
26
|
# Creates the Appium driver
|
|
@@ -32,6 +32,7 @@ module Maze
|
|
|
32
32
|
# Sets up identifiers for ease of connecting jobs
|
|
33
33
|
capabilities ||= {}
|
|
34
34
|
|
|
35
|
+
@failed = false
|
|
35
36
|
@element_locator = locator
|
|
36
37
|
@capabilities = capabilities
|
|
37
38
|
|
|
@@ -64,6 +65,17 @@ module Maze
|
|
|
64
65
|
end
|
|
65
66
|
end
|
|
66
67
|
|
|
68
|
+
# Whether the driver has known to have failed (it may still have failed and us not know yet)
|
|
69
|
+
def failed?
|
|
70
|
+
@failed
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Marks the driver as failed
|
|
74
|
+
def fail_driver
|
|
75
|
+
$logger.error 'Appium driver failed, remaining scenarios will be skipped'
|
|
76
|
+
@failed = true
|
|
77
|
+
end
|
|
78
|
+
|
|
67
79
|
# Checks for an element, waiting until it is present or the method times out
|
|
68
80
|
#
|
|
69
81
|
# @param element_id [String] the element to search for
|
|
@@ -83,7 +95,7 @@ module Maze
|
|
|
83
95
|
end
|
|
84
96
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
85
97
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
86
|
-
|
|
98
|
+
fail_driver
|
|
87
99
|
raise e
|
|
88
100
|
else
|
|
89
101
|
true
|
|
@@ -94,7 +106,7 @@ module Maze
|
|
|
94
106
|
super
|
|
95
107
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
96
108
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
97
|
-
|
|
109
|
+
fail_driver
|
|
98
110
|
raise e
|
|
99
111
|
end
|
|
100
112
|
|
|
@@ -103,7 +115,7 @@ module Maze
|
|
|
103
115
|
super
|
|
104
116
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
105
117
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
106
|
-
|
|
118
|
+
fail_driver
|
|
107
119
|
raise e
|
|
108
120
|
end
|
|
109
121
|
|
|
@@ -114,7 +126,7 @@ module Maze
|
|
|
114
126
|
end
|
|
115
127
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
116
128
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
117
|
-
|
|
129
|
+
fail_driver
|
|
118
130
|
raise e
|
|
119
131
|
end
|
|
120
132
|
|
|
@@ -128,7 +140,7 @@ module Maze
|
|
|
128
140
|
end
|
|
129
141
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
130
142
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
131
|
-
|
|
143
|
+
fail_driver
|
|
132
144
|
raise e
|
|
133
145
|
end
|
|
134
146
|
|
|
@@ -146,7 +158,7 @@ module Maze
|
|
|
146
158
|
false
|
|
147
159
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
148
160
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
149
|
-
|
|
161
|
+
fail_driver
|
|
150
162
|
raise e
|
|
151
163
|
end
|
|
152
164
|
|
|
@@ -160,7 +172,7 @@ module Maze
|
|
|
160
172
|
end
|
|
161
173
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
162
174
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
163
|
-
|
|
175
|
+
fail_driver
|
|
164
176
|
raise e
|
|
165
177
|
end
|
|
166
178
|
|
|
@@ -185,7 +197,7 @@ module Maze
|
|
|
185
197
|
end
|
|
186
198
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
187
199
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
188
|
-
|
|
200
|
+
fail_driver
|
|
189
201
|
raise e
|
|
190
202
|
end
|
|
191
203
|
|
|
@@ -222,7 +234,7 @@ module Maze
|
|
|
222
234
|
end
|
|
223
235
|
rescue Selenium::WebDriver::Error::ServerError => e
|
|
224
236
|
# Assume the remote appium session has stopped, so crash out of the session
|
|
225
|
-
|
|
237
|
+
fail_driver
|
|
226
238
|
raise e
|
|
227
239
|
end
|
|
228
240
|
|
data/lib/maze/driver/browser.rb
CHANGED
|
@@ -13,15 +13,41 @@ module Maze
|
|
|
13
13
|
|
|
14
14
|
def initialize(driver_for, selenium_url=nil, capabilities=nil)
|
|
15
15
|
capabilities ||= {}
|
|
16
|
+
@failed = false
|
|
16
17
|
@capabilities = capabilities
|
|
17
18
|
@driver_for = driver_for
|
|
18
19
|
@selenium_url = selenium_url
|
|
19
20
|
end
|
|
20
21
|
|
|
22
|
+
# Whether the driver has known to have failed (it may still have failed and us not know yet)
|
|
23
|
+
def failed?
|
|
24
|
+
@failed
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Marks the driver as failed
|
|
28
|
+
def fail_driver
|
|
29
|
+
$logger.error 'Selenium driver failed, remaining scenarios will be skipped'
|
|
30
|
+
@failed = true
|
|
31
|
+
end
|
|
32
|
+
|
|
21
33
|
def find_element(*args)
|
|
22
34
|
@driver.find_element(*args)
|
|
23
35
|
end
|
|
24
36
|
|
|
37
|
+
def wait_for_element(id)
|
|
38
|
+
@driver.find_element(id: id)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def click_element(id)
|
|
42
|
+
element = @driver.find_element(id: id)
|
|
43
|
+
|
|
44
|
+
if $browser.mobile?
|
|
45
|
+
element.click
|
|
46
|
+
else
|
|
47
|
+
@driver.action.move_to(element).click.perform
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
25
51
|
def navigate
|
|
26
52
|
@driver.navigate
|
|
27
53
|
end
|
|
@@ -128,6 +154,7 @@ module Maze
|
|
|
128
154
|
end
|
|
129
155
|
$logger.info "Selenium driver started in #{(Time.now - time).to_i}s"
|
|
130
156
|
@driver = driver
|
|
157
|
+
@failed = false
|
|
131
158
|
rescue => error
|
|
132
159
|
Bugsnag.notify error
|
|
133
160
|
$logger.warn "Selenium driver failed to start in #{(Time.now - time).to_i}s"
|
|
@@ -42,11 +42,11 @@ module Maze
|
|
|
42
42
|
# Reset the server to ensure that test fixtures cannot fetch
|
|
43
43
|
# commands from the previous scenario (in idempotent mode).
|
|
44
44
|
begin
|
|
45
|
-
Maze.driver.terminate_app Maze.driver
|
|
45
|
+
Maze.driver.terminate_app Maze.driver.app_id
|
|
46
46
|
rescue Selenium::WebDriver::Error::UnknownError, Selenium::WebDriver::Error::InvalidSessionIdError
|
|
47
47
|
if Maze.config.appium_version && Maze.config.appium_version.to_f < 2.0
|
|
48
48
|
$logger.warn 'terminate_app failed, using the slower but more forceful close_app instead'
|
|
49
|
-
Maze.driver
|
|
49
|
+
Maze.driver.close_app
|
|
50
50
|
else
|
|
51
51
|
$logger.warn 'terminate_app failed, future errors may occur if the application did not close remotely'
|
|
52
52
|
end
|
data/lib/maze.rb
CHANGED
|
@@ -8,7 +8,7 @@ require_relative 'maze/timers'
|
|
|
8
8
|
# providing an alternative to the proliferation of global variables or singletons.
|
|
9
9
|
module Maze
|
|
10
10
|
|
|
11
|
-
VERSION = '9.
|
|
11
|
+
VERSION = '9.22.0'
|
|
12
12
|
|
|
13
13
|
class << self
|
|
14
14
|
attr_accessor :check, :driver, :internal_hooks, :mode, :start_time, :dynamic_retry, :public_address,
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bugsnag-maze-runner
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 9.
|
|
4
|
+
version: 9.22.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Steve Kirkland
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-01-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cucumber
|