bugsnag-maze-runner 9.3.1 → 9.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f27ea68dc346c2a0f579cc5469176bb972b410df5c45cb033d133b872c6ececb
4
- data.tar.gz: d9b56d5caa14ddf01e612e578fcc778cc522ef64dc7e92f2fcf1d343edd0ef00
3
+ metadata.gz: ebfe5ec9f34345cf0f5c2cbb5d94f9ed3ebfce52ad87f4e69580103c57c57870
4
+ data.tar.gz: cf4a7628f486f944dda441b62caa8945fe315106e96966f4ffde1a40cee23c6d
5
5
  SHA512:
6
- metadata.gz: 4ed30e0eaa84c7a257b39738b59c9d07199bd6f0d11216964f543f5df2624cb085d70ce653df94e6140577d68cfac03bac9c11526e876c1f70a83b8626cc9fb1
7
- data.tar.gz: 7c435daa612fb2b91802757845ac706a70ca78fcd84d3d991a71d10ea4e2725e3985956ba5d65f77cd6edcf73a7ea3ad57475ce1fd49771d95474e9a7029d98b
6
+ metadata.gz: a03d87778582af7a94ff562b0794db23dfb4b9fc73df5545fec781514583f38b7f1cdf7cdf98dd9363a51089680bc84c43d8361d8471e08e29fd4182ae16d4f1
7
+ data.tar.gz: 00d069f3ad7eb7f6d96bd89d08714f82507567c94ef518b3373fb0c5a533752e1fc63c396bc2ffee47be6042fa41975a00a21da91e249cc6b6e24559ed845b77
@@ -95,8 +95,8 @@ InstallPlugin do |config|
95
95
  # Add step logging
96
96
  config.filters << Maze::Plugins::LoggingScenariosPlugin.new(config)
97
97
 
98
- # TODO: Reporting of test failures as errors deactivated pending PLAT-10963
99
- #config.filters << Maze::Plugins::BugsnagReportingPlugin.new(config)
98
+ # Add bugsnag failed scenario reporting only if ENV['MAZE_SCENARIO_BUGSNAG_API_KEY'] is present
99
+ config.filters << Maze::Plugins::BugsnagReportingPlugin.new(config) unless ENV['MAZE_SCENARIO_BUGSNAG_API_KEY'].nil?
100
100
  end
101
101
 
102
102
  # Before each scenario
@@ -12,6 +12,8 @@ module Maze
12
12
  TUNNEL_FAILURE = 101
13
13
  SESSION_CREATION_FAILURE = 102
14
14
  APPIUM_SESSION_FAILURE = 103
15
+ # A catch-all for certain errors related to Appium failures when the app is running app hang or ANR tests
16
+ APPIUM_APP_HANG_FAILURE = 104
15
17
  end
16
18
  end
17
19
  end
@@ -11,7 +11,6 @@ module Maze
11
11
  Bugsnag.configure do |config|
12
12
  config.api_key = ENV['MAZE_BUGSNAG_API_KEY']
13
13
  config.app_version = Maze::VERSION
14
- config.discard_classes << 'Test::Unit::AssertionFailedError'
15
14
  config.add_metadata(:'test driver', {
16
15
  'driver type': Maze.driver.class,
17
16
  'device farm': Maze.config.farm,
@@ -32,6 +31,7 @@ module Maze
32
31
  metadata['job url'] = ENV['BUILDKITE_BUILD_URL'] + "#" + ENV['BUILDKITE_JOB_ID']
33
32
  end
34
33
  end
34
+ config.middleware.use(AssertErrorMiddleware)
35
35
  config.add_metadata(:'buildkite', metadata)
36
36
  config.project_root = Dir.pwd
37
37
  end
@@ -45,5 +45,27 @@ module Maze
45
45
  end
46
46
  end
47
47
  end
48
+
49
+ class AssertErrorMiddleware
50
+ IGNORE_CLASS_NAME = 'Test::Unit::AssertionFailedError'
51
+
52
+ # @param middleware [#call] The next middleware to call
53
+ def initialize(middleware)
54
+ @middleware = middleware
55
+ end
56
+
57
+ def call(report)
58
+ # Only ignore automated notifies with assertion errors
59
+ automated = report.unhandled
60
+
61
+ class_match = report.raw_exceptions.any? do |ex|
62
+ ex.class.name.eql?(IGNORE_CLASS_NAME)
63
+ end
64
+
65
+ report.ignore! if automated && class_match
66
+
67
+ @middleware.call(report)
68
+ end
69
+ end
48
70
  end
49
71
  end
@@ -42,7 +42,7 @@ module Maze
42
42
  default: true
43
43
 
44
44
  opt Option::BUGSNAG,
45
- 'Enables reporting to Bugsnag on scenario failure (requires MAZE_BUGSNAG_API_KEY)',
45
+ 'Enables reporting to Bugsnag on scenario failure (requires MAZE_BUGSNAG_API_KEY for errors, MAZE_SCENARIO_BUGSNAG_API_KEY for test failures)',
46
46
  type: :boolean,
47
47
  short: :none,
48
48
  default: true
@@ -25,6 +25,9 @@ module Maze
25
25
  next unless event.test_case.eql?(test_case) && event.result.failed?
26
26
 
27
27
  Bugsnag.notify(event.result.exception) do |bsg_event|
28
+
29
+ bsg_event.api_key = ENV['MAZE_SCENARIO_BUGSNAG_API_KEY']
30
+
28
31
  unless @last_test_step.nil?
29
32
 
30
33
  repo = ENV['BUILDKITE_PIPELINE_SLUG']
data/lib/maze.rb CHANGED
@@ -7,7 +7,7 @@ require_relative 'maze/timers'
7
7
  # Glues the various parts of MazeRunner together that need to be accessed globally,
8
8
  # providing an alternative to the proliferation of global variables or singletons.
9
9
  module Maze
10
- VERSION = '9.3.1'
10
+ VERSION = '9.4.0'
11
11
 
12
12
  class << self
13
13
  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.3.1
4
+ version: 9.4.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: 2024-03-06 00:00:00.000000000 Z
11
+ date: 2024-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber