allure-ruby-commons 2.13.6.4 → 2.13.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a51c9949322455ac55cd973f942ba0392f51171fad89f23d0e16cbe16224014b
4
- data.tar.gz: 7b4c8ccfca17187f553e9f5192a19fbe23dc84c780b73d057a29da9eed92ed61
3
+ metadata.gz: 1bc521722448d5d7f665ad0030bde72f700e59b9e03446ae018f5ba6138b7bc3
4
+ data.tar.gz: 13b5dda45f54667133b4563f14bcecbf53b3d47e4900877779681dc2fe0d6848
5
5
  SHA512:
6
- metadata.gz: e71a93d78c8efdfd477953644f58a1495fa6baca06592ddd5206c4abfc088d292a8f3a61ae72fe98d4db589144d4c0c8194a18a9e675cbecaeeb98d80265079b
7
- data.tar.gz: 6d44b2fed79aa4258cfca49e4f0bc709f2aef144292fa6760191772eae4d4a4b763510f9ded50c8b146df635a44d80bf6725ac059843839f030ecd649553ad2c
6
+ metadata.gz: af6d41eec7edcb5ed2729afda19583d80cc2a437ccb6c6881b9faccaee2f4cfa578b26eb53422617ad1bf5cb883e76767dbbea15f2d921865d35f320ab803ac3
7
+ data.tar.gz: 2bd20a058c6fabf324056e8543c56567dc49cade84ed60420e0bf6224dce10dd601ecb6fff274a1727321d452b30c1664dca7d47b3815532d87fa0e99f902b45
data/README.md CHANGED
@@ -54,6 +54,23 @@ Allure.add_attachment(name: "attachment", source: "/path/to/test.txt", type: All
54
54
  Allure.add_link(name: "Custom Url", url: "http://www.github.com")
55
55
  ```
56
56
 
57
+ ## Steps
58
+
59
+ It is possible to mark method definitions to be automatically added to report as steps. The class just needs to extend `AllureStepAnnotation`
60
+ and `step` method needs to be used before the method definition.
61
+
62
+ ```ruby
63
+ class TestHelper
64
+ extend AllureStepAnnotation
65
+
66
+ step("Singleton step")
67
+ def self.class_method; end
68
+
69
+ step("Standard step")
70
+ def standard_method; end
71
+ end
72
+ ```
73
+
57
74
  ## Testing
58
75
 
59
76
  Install dependencies:
@@ -64,6 +64,13 @@ module Allure
64
64
  label(ResultUtils::SUITE_LABEL_NAME, value)
65
65
  end
66
66
 
67
+ # Add tag to current test case
68
+ # @param [String] value
69
+ # @return [void]
70
+ def tag(value)
71
+ label(ResultUtils::TAG_LABEL_NAME, value)
72
+ end
73
+
67
74
  # Add label to current test case
68
75
  # @param [String] name
69
76
  # @param [String] value
@@ -162,14 +169,16 @@ module Allure
162
169
  lifecycle.stop_test_step
163
170
  end
164
171
 
165
- # Run passed block as step with given name
172
+ # Run passed block as step with given name and return result of yield
166
173
  # @param [String] name
167
174
  # @yield [] step block
168
- # @return [void]
175
+ # @return [Object]
169
176
  def run_step(name)
170
177
  lifecycle.start_test_step(StepResult.new(name: name, stage: Stage::RUNNING))
171
- yield
178
+ result = yield
172
179
  lifecycle.update_test_step { |step| step.status = Status::PASSED }
180
+
181
+ result
173
182
  rescue StandardError => e
174
183
  lifecycle.update_test_step do |step|
175
184
  step.status = ResultUtils.status(e)
@@ -10,12 +10,41 @@ module Allure
10
10
 
11
11
  # @return [Array<String>] valid log levels
12
12
  LOGLEVELS = %w[DEBUG INFO WARN ERROR FATAL UNKNOWN].freeze
13
+ # @return [String] test plan path env var name
14
+ TESTPLAN_PATH = "ALLURE_TESTPLAN_PATH"
15
+
16
+ attr_accessor :results_directory, :logging_level, :link_tms_pattern, :link_issue_pattern, :clean_results_directory
13
17
 
14
18
  def initialize
15
19
  @results_directory = "reports/allure-results"
16
20
  @logging_level = LOGLEVELS.index(ENV.fetch("ALLURE_LOG_LEVEL", "INFO")) || Logger::INFO
17
21
  end
18
22
 
19
- attr_accessor :results_directory, :logging_level, :link_tms_pattern, :link_issue_pattern, :clean_results_directory
23
+ # Allure id's of executable tests
24
+ #
25
+ # @return [Array]
26
+ def test_ids
27
+ @test_ids ||= tests&.map { |test| test[:id] }
28
+ end
29
+
30
+ # Test names of executable tests
31
+ #
32
+ # @return [Array]
33
+ def test_names
34
+ @test_names ||= tests&.map { |test| test[:selector] }
35
+ end
36
+
37
+ private
38
+
39
+ # Tests to execute from allure testplan.json
40
+ #
41
+ # @return [Array<Hash>]
42
+ def tests
43
+ @tests ||= begin
44
+ Oj.load_file(ENV[TESTPLAN_PATH], symbol_keys: true)&.fetch(:tests) if ENV[TESTPLAN_PATH]
45
+ end
46
+ rescue Oj::ParseError
47
+ nil
48
+ end
20
49
  end
21
50
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model attachment object
7
5
  class Attachment < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Defects category
7
5
  class Category < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model executable item
7
5
  class ExecutableItem < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model label object
7
5
  class Label < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model link object
7
5
  class Link < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model parameter object
7
5
  class Parameter < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model step result container
7
5
  class TestResultContainer < JSONable
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Adds support for annotating methods as allure steps
4
+ #
5
+ module AllureStepAnnotation
6
+ # Mark method definition as allure step
7
+ #
8
+ # @param [String] step_name
9
+ # @return [void]
10
+ def step(step_name = "")
11
+ @allure_step = step_name
12
+ end
13
+
14
+ private
15
+
16
+ def singleton_method_added(method_name)
17
+ return super unless @allure_step
18
+
19
+ original_method = singleton_method(method_name)
20
+ step_name = @allure_step.empty? ? method_name.to_s : @allure_step
21
+ @allure_step = nil
22
+
23
+ define_singleton_method(method_name) do |*args, &block|
24
+ Allure.run_step(step_name) { original_method.call(*args, &block) }
25
+ end
26
+ end
27
+
28
+ def method_added(method_name)
29
+ return super unless @allure_step
30
+
31
+ original_method = instance_method(method_name)
32
+ step_name = @allure_step.empty? ? method_name.to_s : @allure_step
33
+ @allure_step = nil
34
+
35
+ define_method(method_name) do |*args, &block|
36
+ Allure.run_step(step_name) { original_method.bind(self).call(*args, &block) }
37
+ end
38
+ end
39
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allure-ruby-commons
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.6.4
4
+ version: 2.13.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrejs Cunskis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-27 00:00:00.000000000 Z
11
+ date: 2021-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.3'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '3.3'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: oj
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -31,6 +37,9 @@ dependencies:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
39
  version: '3.10'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '4'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +47,9 @@ dependencies:
38
47
  - - ">="
39
48
  - !ruby/object:Gem::Version
40
49
  version: '3.10'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '4'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: require_all
43
55
  requirement: !ruby/object:Gem::Requirement
@@ -65,6 +77,9 @@ dependencies:
65
77
  - - ">="
66
78
  - !ruby/object:Gem::Version
67
79
  version: '2.3'
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '3'
68
83
  type: :runtime
69
84
  prerelease: false
70
85
  version_requirements: !ruby/object:Gem::Requirement
@@ -72,6 +87,9 @@ dependencies:
72
87
  - - ">="
73
88
  - !ruby/object:Gem::Version
74
89
  version: '2.3'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '3'
75
93
  description: Utilities allowing to implement allure result generation by other test
76
94
  frameworks
77
95
  email: andrejs.cunskis@gmail.com
@@ -84,12 +102,12 @@ files:
84
102
  - lib/allure_ruby_commons/allure_lifecycle.rb
85
103
  - lib/allure_ruby_commons/config.rb
86
104
  - lib/allure_ruby_commons/file_writer.rb
105
+ - lib/allure_ruby_commons/model/01_jsonable.rb
87
106
  - lib/allure_ruby_commons/model/attachment.rb
88
107
  - lib/allure_ruby_commons/model/category.rb
89
108
  - lib/allure_ruby_commons/model/content_type.rb
90
109
  - lib/allure_ruby_commons/model/executable_item.rb
91
110
  - lib/allure_ruby_commons/model/fixture_result.rb
92
- - lib/allure_ruby_commons/model/jsonable.rb
93
111
  - lib/allure_ruby_commons/model/label.rb
94
112
  - lib/allure_ruby_commons/model/link.rb
95
113
  - lib/allure_ruby_commons/model/parameter.rb
@@ -100,6 +118,7 @@ files:
100
118
  - lib/allure_ruby_commons/model/test_result.rb
101
119
  - lib/allure_ruby_commons/model/test_result_container.rb
102
120
  - lib/allure_ruby_commons/result_utils.rb
121
+ - lib/allure_ruby_commons/step_annotation.rb
103
122
  homepage: https://github.com/allure-framework/allure-ruby
104
123
  licenses:
105
124
  - Apache-2.0
@@ -124,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
143
  - !ruby/object:Gem::Version
125
144
  version: '0'
126
145
  requirements: []
127
- rubygems_version: 3.1.2
146
+ rubygems_version: 3.2.3
128
147
  signing_key:
129
148
  specification_version: 4
130
149
  summary: Common library for allure results generation