allure-rspec 2.13.9 → 2.13.10

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: 77fad060fb1fbcbbb4399244a58df51707defcfe9a2e7b5a5b193fb1a4940420
4
- data.tar.gz: 73d4d50f964562c583158da41999dc8c8390f8b977cf3c532da7da50f8524835
3
+ metadata.gz: 6713eef98c82f9aaaedf42b680dfc60cd6a1f0d078d0bbde6d41ca093bd43cc7
4
+ data.tar.gz: f2621a5be7fe54c960a40cb49aba240aa6ade93aefc7843a671b42011ee5b6d5
5
5
  SHA512:
6
- metadata.gz: 5344896aeb24c28fb6f424c2485f61e1f2656f5f0639bf25f981f88a50d432a3afa947e3b2f4f6967218c8896f9759de8f07f3aca880b6d22f9dbf46def8ca23
7
- data.tar.gz: 3f3201b3da9e3997bdcc368a274b39830569612621d0af206457aa046a507f4185679674d419971f39697da9ecae6b79acd5e05eff1ebe02a38cdda5ddf7fed4
6
+ metadata.gz: c55b18d7fe448382e93a775f71f00c1297c621947d655466baab033923aba86c466bc40d377d5f0a9bcd54e281edc1befb602dfad44d04b47f2b72a65fb60739
7
+ data.tar.gz: 89a69e78576802c4c3c3c36bd816c6e00c75bda47edac1d029e430c019d9556db80d10f88d6c6e6a99d1144d3e64549e4e6e0b0e8f7ec15ff277a967dd796ce6
data/README.md CHANGED
@@ -24,12 +24,15 @@ Following configuration options are supported:
24
24
 
25
25
  ```ruby
26
26
  AllureRspec.configure do |config|
27
- config.results_directory = "/whatever/you/like"
28
- config.clean_results_directory = true
29
- config.logging_level = Logger::INFO
30
- # these are used for creating links to bugs or test cases where {} is replaced with keys of relevant items
31
- config.link_tms_pattern = "http://www.jira.com/browse/{}"
32
- config.link_issue_pattern = "http://www.jira.com/browse/{}"
27
+ config.results_directory = "report/allure-results"
28
+ config.clean_results_directory = true
29
+ config.logging_level = Logger::INFO
30
+ config.logger = Logger.new($stdout, Logger::DEBUG)
31
+ config.environment = "staging"
32
+
33
+ # these are used for creating links to bugs or test cases where {} is replaced with keys of relevant items
34
+ config.link_tms_pattern = "http://www.jira.com/browse/{}"
35
+ config.link_issue_pattern = "http://www.jira.com/browse/{}"
33
36
  end
34
37
  ```
35
38
 
@@ -53,11 +56,12 @@ end
53
56
 
54
57
  ### Adding tms links
55
58
 
56
- Configure tms link pattern:
59
+ Configure tms link pattern and rspec tag:
57
60
 
58
61
  ```ruby
59
62
  AllureRspec.configure do |config|
60
63
  config.link_tms_pattern = "http://www.jira.com/browse/{}"
64
+ config.tms_tag = :tms
61
65
  end
62
66
  ```
63
67
 
@@ -84,6 +88,7 @@ Configure issue link pattern:
84
88
  ```ruby
85
89
  AllureRspec.configure do |config|
86
90
  config.link_issue_pattern = "http://www.jira.com/browse/{}"
91
+ config.issue_tag = :issue
87
92
  end
88
93
  ```
89
94
 
@@ -105,7 +110,15 @@ end
105
110
 
106
111
  ### Adding custom severity and status details
107
112
 
108
- Test severity (`normal` by default) can be changed via `severity` tag:
113
+ Configure severity tag:
114
+
115
+ ```ruby
116
+ AllureRspec.configure do |config|
117
+ config.severity_tag = :severity
118
+ end
119
+ ```
120
+
121
+ Test severity is set to `normal` by default:
109
122
 
110
123
  ```ruby
111
124
  it "some test case", severity: :critical do
@@ -131,9 +144,20 @@ it "some test case", allure_1: "visual_test", allure_2: "core_functionality" do
131
144
  end
132
145
  ```
133
146
 
147
+ All rspec metadata tags will also be added as labels in test report.
148
+
134
149
  ### Behavior driven test grouping
135
150
 
136
- Marking tests with tags `:epic, :feature, :story`, will group tests accordingly in Behavior report tab:
151
+ Marking tests with tags `:epic, :feature, :story`, will group tests accordingly in Behavior report tab.\
152
+ Tag values can also be configured:
153
+
154
+ ```ruby
155
+ AllureRspec.configure do |config|
156
+ config.epic_tag = :epic
157
+ config.feature_tag = :feature
158
+ config.story_tag = :story
159
+ end
160
+ ```
137
161
 
138
162
  ```ruby
139
163
  context "context", feature: "my feature" do
data/lib/allure-rspec.rb CHANGED
@@ -8,13 +8,13 @@ require_rel "allure_rspec/**/*.rb"
8
8
  module AllureRspec
9
9
  class << self
10
10
  # Get allure cucumber configuration
11
- # @return [RspecConfig]
11
+ # @return [AllureRspec::RspecConfig]
12
12
  def configuration
13
13
  RspecConfig.instance
14
14
  end
15
15
 
16
16
  # Set allure configuration
17
- # @yieldparam [RspecConfig]
17
+ # @yieldparam [AllureRspec::RspecConfig]
18
18
  # @yieldreturn [void]
19
19
  # @return [void]
20
20
  def configure
File without changes
@@ -1,14 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "forwardable"
4
3
  require "singleton"
5
4
 
6
5
  module AllureRspec
7
- # Shorthand configuration class
8
- class RspecConfig < Allure::Config
6
+ # Allure RSpec configuration class
7
+ #
8
+ # @!attribute results_directory
9
+ # @return [String]
10
+ # @!attribute clean_results_directory
11
+ # @return [Boolean]
12
+ # @!attribute link_issue_pattern
13
+ # @return [String]
14
+ # @!attribute link_tms_pattern
15
+ # @return [String]
16
+ # @!attribute logging_level
17
+ # @return [Integer]
18
+ # @!attribute [r] logger
19
+ # @return [Logger]
20
+ # @!attribute environment
21
+ # @return [String]
22
+ class RspecConfig
9
23
  include Singleton
10
24
  extend Forwardable
11
25
 
26
+ # @return [Symbol] default tms tag
27
+ DEFAULT_TMS_TAG = :tms
28
+ # @return [Symbol] default issue tag
29
+ DEFAULT_ISSUE_TAG = :issue
30
+ # @return [Symbol] default severity tag
31
+ DEFAULT_SEVERITY_TAG = :severity
32
+ # @return [Symbol] default epic tag
33
+ DEFAULT_EPIC_TAG = :epic
34
+ # @return [Symbol] default feature tag
35
+ DEFAULT_FEATURE_TAG = :feature
36
+ # @return [Symbol] default story tag
37
+ DEFAULT_STORY_TAG = :story
38
+
12
39
  def_delegators :@allure_config,
13
40
  :clean_results_directory,
14
41
  :clean_results_directory=,
@@ -18,13 +45,52 @@ module AllureRspec
18
45
  :link_tms_pattern=,
19
46
  :logging_level,
20
47
  :logging_level=,
48
+ :logger,
49
+ :logger=,
21
50
  :results_directory,
22
- :results_directory=
51
+ :results_directory=,
52
+ :environment,
53
+ :environment=
23
54
 
24
55
  def initialize
25
- super()
26
-
27
56
  @allure_config = Allure.configuration
28
57
  end
58
+
59
+ attr_writer :tms_tag,
60
+ :issue_tag,
61
+ :severity_tag,
62
+ :epic_tag,
63
+ :feature_tag,
64
+ :story_tag
65
+
66
+ # @return [Symbol]
67
+ def tms_tag
68
+ @tms_prefix || DEFAULT_TMS_TAG
69
+ end
70
+
71
+ # @return [Symbol]
72
+ def issue_tag
73
+ @issue_prefix || DEFAULT_ISSUE_TAG
74
+ end
75
+
76
+ # @return [Symbol]
77
+ def severity_tag
78
+ @severity_prefix || DEFAULT_SEVERITY_TAG
79
+ end
80
+
81
+ # @return [Symbol]
82
+ def epic_tag
83
+ @epic_prefix || DEFAULT_EPIC_TAG
84
+ end
85
+
86
+ # @return [Symbol]
87
+ def feature_tag
88
+ @feature_prefix || DEFAULT_FEATURE_TAG
89
+ end
90
+
91
+ # @return [Symbol]
92
+ def story_tag
93
+ @story_prefix || DEFAULT_STORY_TAG
94
+ end
29
95
  end
30
96
  end
@@ -1,16 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "ruby2_keywords"
4
3
  require "rspec/core"
5
4
  require "rspec/core/formatters/base_formatter"
6
5
 
7
- require_relative "rspec_model"
8
-
9
6
  # Main allure-rspec module
10
7
  module AllureRspec
11
8
  # Main rspec formatter class translating rspec events to allure lifecycle
12
9
  class RSpecFormatter < RSpec::Core::Formatters::BaseFormatter
13
- include AllureRspecModel
10
+ include Utils
11
+
12
+ # @return [Hash] allure statuses mapping
13
+ ALLURE_STATUS = {
14
+ failed: Allure::Status::FAILED,
15
+ pending: Allure::Status::SKIPPED,
16
+ passed: Allure::Status::PASSED
17
+ }.freeze
14
18
 
15
19
  RSpec::Core::Formatters.register(
16
20
  self,
@@ -21,20 +25,19 @@ module AllureRspec
21
25
  :example_finished
22
26
  )
23
27
 
24
- RSpec::Core::Example.class_eval do
25
- Allure.singleton_methods.each do |method|
26
- ruby2_keywords define_method(method) { |*args, &block| Allure.__send__(method, *args, &block) }
27
- end
28
+ RSpec.configure do |config|
29
+ ids = Allure::TestPlan.test_ids
30
+ names = Allure::TestPlan.test_names
31
+
32
+ config.filter_run_when_matching(*ids.map { |id| { allure_id: id } }) if ids
33
+ config.full_description = names if names
28
34
  end
29
35
 
30
- RSpec.configure do |config|
31
- Allure.configure do |allure_config|
32
- ids = allure_config.test_ids
33
- names = allure_config.test_names
36
+ def initialize(output)
37
+ super
34
38
 
35
- config.filter_run_when_matching(*ids.map { |id| { allure_id: id } }) if ids
36
- config.full_description = names if names
37
- end
39
+ @allure_config = AllureRspec.configuration
40
+ Allure.lifecycle = @lifecycle = Allure::AllureLifecycle.new(@allure_config)
38
41
  end
39
42
 
40
43
  # Start test run
@@ -42,6 +45,10 @@ module AllureRspec
42
45
  # @return [void]
43
46
  def start(_start_notification)
44
47
  lifecycle.clean_results_dir
48
+
49
+ RSpec::Core::Example.class_eval do
50
+ include Allure
51
+ end
45
52
  end
46
53
 
47
54
  # Starts example group
@@ -78,10 +85,48 @@ module AllureRspec
78
85
 
79
86
  private
80
87
 
81
- # Get thread specific lifecycle
82
- # @return [Allure::AllureLifecycle]
83
- def lifecycle
84
- Allure.lifecycle
88
+ attr_reader :lifecycle, :allure_config
89
+
90
+ # Transform example to <Allure::TestResult>
91
+ # @param [RSpec::Core::Example] example
92
+ # @return [Allure::TestResult]
93
+ def test_result(example)
94
+ parser = RspecMetadataParser.new(example, allure_config)
95
+
96
+ Allure::TestResult.new(
97
+ name: example.description,
98
+ description: "Location - #{strip_relative(example.location)}",
99
+ description_html: "Location - #{strip_relative(example.location)}",
100
+ history_id: Digest::MD5.hexdigest(example.id),
101
+ full_name: example.full_description,
102
+ labels: parser.labels,
103
+ links: parser.links,
104
+ status_details: parser.status_details,
105
+ environment: allure_config.environment
106
+ )
107
+ end
108
+
109
+ # Update test status on finish
110
+ # @param [RSpec::Core::Example::ExecutionResult] result
111
+ # @return [Proc]
112
+ def update_test_proc(result)
113
+ Allure::ResultUtils.status_details(result.exception).yield_self do |status_detail|
114
+ proc do |test_case|
115
+ test_case.stage = Allure::Stage::FINISHED
116
+ test_case.status = status(result)
117
+ test_case.status_details.message = status_detail.message
118
+ test_case.status_details.trace = status_detail.trace
119
+ end
120
+ end
121
+ end
122
+
123
+ # Get allure status from result
124
+ # @param [RSpec::Core::Example::ExecutionResult] result
125
+ # @return [Symbol]
126
+ def status(result)
127
+ return Allure::ResultUtils.status(result.exception) if result.status == :failed
128
+
129
+ ALLURE_STATUS[result.status]
85
130
  end
86
131
  end
87
132
  end
@@ -1,53 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AllureRspec
4
- # Suite label generator
5
- #
6
- class SuiteLabels
7
- include Utils
8
-
9
- def initialize(example_group)
10
- @example_group = example_group
11
- end
12
-
13
- # Get test suite labels
14
- # @return [Array<Allure::Label>]
15
- def fetch
16
- parents = example_group.parent_groups.map do |group|
17
- group.description.empty? ? "Anonymous" : group.description
18
- end
19
-
20
- labels = []
21
- labels << Allure::ResultUtils.suite_label(suite(parents))
22
- labels << Allure::ResultUtils.parent_suite_label(parent_suite(parents)) if parent_suite(parents)
23
- labels << Allure::ResultUtils.sub_suite_label(sub_suites(parents)) if sub_suites(parents)
24
-
25
- labels
26
- end
27
-
28
- private
29
-
30
- attr_reader :example_group
31
-
32
- # @param [Array<String>] parents
33
- # @return [String]
34
- def suite(parents)
35
- parents.length == 1 ? parents.last : parents[-2]
36
- end
37
-
38
- # @param [Array<String>] parents
39
- # @return [String]
40
- def parent_suite(parents)
41
- parents.length > 1 ? parents.last : nil
42
- end
43
-
44
- # @param [Array<String>] parents
45
- # @return [String]
46
- def sub_suites(parents)
47
- parents.length > 2 ? parents[0..-3].join(" > ") : nil
48
- end
49
- end
50
-
51
4
  # RSpec metadata parser
52
5
  #
53
6
  class RspecMetadataParser
@@ -75,8 +28,13 @@ module AllureRspec
75
28
  type
76
29
  ].freeze
77
30
 
78
- def initialize(example)
31
+ # Metadata parser instance
32
+ #
33
+ # @param [RSpec::Core::Example] example
34
+ # @param [AllureRspec::RspecConfig] config <description>
35
+ def initialize(example, config)
79
36
  @example = example
37
+ @config = config
80
38
  end
81
39
 
82
40
  # Get allure labels
@@ -111,9 +69,12 @@ module AllureRspec
111
69
 
112
70
  private
113
71
 
114
- # @param [RSpec::Core::Example] example
72
+ # @return [RSpec::Core::Example]
115
73
  attr_reader :example
116
74
 
75
+ # @return [AllureRspec::RspecConfig]
76
+ attr_reader :config
77
+
117
78
  # Example metadata
118
79
  #
119
80
  # @return [Hash]
@@ -143,7 +104,7 @@ module AllureRspec
143
104
  # Get severity
144
105
  # @return [String]
145
106
  def severity
146
- Allure::ResultUtils.severity_label(metadata[:severity] || "normal")
107
+ Allure::ResultUtils.severity_label(metadata[config.severity_tag] || "normal")
147
108
  end
148
109
 
149
110
  # Get test suite labels
@@ -164,9 +125,9 @@ module AllureRspec
164
125
  # @return [Array<Allure::Label>]
165
126
  def behavior_labels
166
127
  metadata = example.metadata
167
- epic = metadata[:epic] || Pathname.new(strip_relative(example.file_path)).parent.to_s
168
- feature = metadata[:feature] || example.example_group.description
169
- story = metadata[:story]
128
+ epic = metadata[config.epic_tag] || Pathname.new(strip_relative(example.file_path)).parent.to_s
129
+ feature = metadata[config.feature_tag] || example.example_group.description
130
+ story = metadata[config.story_tag]
170
131
 
171
132
  [
172
133
  Allure::ResultUtils.epic_label(epic),
@@ -179,11 +140,12 @@ module AllureRspec
179
140
  # @param [Symbol] type
180
141
  # @return [Array<Allure::Link>]
181
142
  def matching_links(type)
182
- return [] unless AllureRspec.configuration.public_send("link_#{type}_pattern")
143
+ link_pattern = config.public_send("link_#{type}_pattern")
144
+ return [] unless link_pattern
183
145
 
184
146
  metadata
185
147
  .select { |k| __send__("#{type}?", k) }.values
186
- .map { |v| Allure::ResultUtils.public_send("#{type}_link", v) }
148
+ .map { |v| Allure::ResultUtils.public_send("#{type}_link", v, link_pattern) }
187
149
  end
188
150
 
189
151
  # Special allure metadata tags
@@ -191,7 +153,12 @@ module AllureRspec
191
153
  # @param [Symbol] key
192
154
  # @return [boolean]
193
155
  def special_metadata_tag?(key)
194
- tms?(key) || issue?(key) || %i[severity epic feature story].include?(key)
156
+ tms?(key) || issue?(key) || [
157
+ config.severity_tag,
158
+ config.epic_tag,
159
+ config.feature_tag,
160
+ config.story_tag
161
+ ].include?(key)
195
162
  end
196
163
 
197
164
  # Does key match custom allure label
@@ -205,14 +172,14 @@ module AllureRspec
205
172
  # @param [Symbol] key
206
173
  # @return [boolean]
207
174
  def tms?(key)
208
- key.to_s.match?(/tms(_\d+)?/i)
175
+ key.to_s.match?(/#{config.tms_tag}(_\d+)?/i)
209
176
  end
210
177
 
211
178
  # Does key match issue pattern
212
179
  # @param [Symbol] key
213
180
  # @return [boolean]
214
181
  def issue?(key)
215
- key.to_s.match?(/issue(_\d+)?/i)
182
+ key.to_s.match?(/#{config.issue_tag}(_\d+)?/i)
216
183
  end
217
184
  end
218
185
  end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AllureRspec
4
+ # Suite label generator
5
+ #
6
+ class SuiteLabels
7
+ include Utils
8
+
9
+ def initialize(example_group)
10
+ @example_group = example_group
11
+ end
12
+
13
+ # Get test suite labels
14
+ # @return [Array<Allure::Label>]
15
+ def fetch
16
+ parents = example_group.parent_groups.map do |group|
17
+ group.description.empty? ? "Anonymous" : group.description
18
+ end
19
+
20
+ labels = []
21
+ labels << Allure::ResultUtils.suite_label(suite(parents))
22
+ labels << Allure::ResultUtils.parent_suite_label(parent_suite(parents)) if parent_suite(parents)
23
+ labels << Allure::ResultUtils.sub_suite_label(sub_suites(parents)) if sub_suites(parents)
24
+
25
+ labels
26
+ end
27
+
28
+ private
29
+
30
+ attr_reader :example_group
31
+
32
+ # @param [Array<String>] parents
33
+ # @return [String]
34
+ def suite(parents)
35
+ parents.length == 1 ? parents.last : parents[-2]
36
+ end
37
+
38
+ # @param [Array<String>] parents
39
+ # @return [String]
40
+ def parent_suite(parents)
41
+ parents.length > 1 ? parents.last : nil
42
+ end
43
+
44
+ # @param [Array<String>] parents
45
+ # @return [String]
46
+ def sub_suites(parents)
47
+ parents.length > 2 ? parents[0..-3].join(" > ") : nil
48
+ end
49
+ end
50
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allure-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.9
4
+ version: 2.13.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrejs Cunskis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-15 00:00:00.000000000 Z
11
+ date: 2021-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allure-ruby-commons
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.13.9
19
+ version: 2.13.10
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.13.9
26
+ version: 2.13.10
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec-core
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,20 +44,6 @@ dependencies:
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '4'
47
- - !ruby/object:Gem::Dependency
48
- name: ruby2_keywords
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: 0.0.2
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: 0.0.2
61
47
  description: Cucumber adaptor to generate rich allure test reports
62
48
  email: andrejs.cunskis@gmail.com
63
49
  executables: []
@@ -66,11 +52,11 @@ extra_rdoc_files: []
66
52
  files:
67
53
  - README.md
68
54
  - lib/allure-rspec.rb
69
- - lib/allure_rspec/01_utils.rb
55
+ - lib/allure_rspec/_utils.rb
70
56
  - lib/allure_rspec/config.rb
71
57
  - lib/allure_rspec/formatter.rb
72
58
  - lib/allure_rspec/metadata_parser.rb
73
- - lib/allure_rspec/rspec_model.rb
59
+ - lib/allure_rspec/suite_labels.rb
74
60
  homepage: https://github.com/allure-framework/allure-ruby/tree/master/allure-rspec
75
61
  licenses:
76
62
  - Apache-2.0
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "digest"
4
- require "pathname"
5
-
6
- module AllureRspec
7
- # Support class for transforming rspec test entities in to allure model entities
8
- module AllureRspecModel
9
- include AllureRspec::Utils
10
-
11
- # @return [Hash] allure statuses mapping
12
- ALLURE_STATUS = {
13
- failed: Allure::Status::FAILED,
14
- pending: Allure::Status::SKIPPED,
15
- passed: Allure::Status::PASSED
16
- }.freeze
17
-
18
- # Transform example to <Allure::TestResult>
19
- # @param [RSpec::Core::Example] example
20
- # @return [Allure::TestResult]
21
- def test_result(example)
22
- parser = RspecMetadataParser.new(example)
23
-
24
- Allure::TestResult.new(
25
- name: example.description,
26
- description: "Location - #{strip_relative(example.location)}",
27
- description_html: "Location - #{strip_relative(example.location)}",
28
- history_id: Digest::MD5.hexdigest(example.id),
29
- full_name: example.full_description,
30
- labels: parser.labels,
31
- links: parser.links,
32
- status_details: parser.status_details
33
- )
34
- end
35
-
36
- # Update test status on finish
37
- # @param [RSpec::Core::Example::ExecutionResult] result
38
- # @return [Proc]
39
- def update_test_proc(result)
40
- Allure::ResultUtils.status_details(result.exception).yield_self do |status_detail|
41
- proc do |test_case|
42
- test_case.stage = Allure::Stage::FINISHED
43
- test_case.status = status(result)
44
- test_case.status_details.message = status_detail.message
45
- test_case.status_details.trace = status_detail.trace
46
- end
47
- end
48
- end
49
-
50
- private
51
-
52
- # Get allure status from result
53
- # @param [RSpec::Core::Example::ExecutionResult] result
54
- # @return [Symbol]
55
- def status(result)
56
- return Allure::ResultUtils.status(result.exception) if result.status == :failed
57
-
58
- ALLURE_STATUS[result.status]
59
- end
60
- end
61
- end