allure-ruby-commons 2.13.6.2 → 2.13.8.1
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/allure-ruby-commons.rb +7 -4
- data/lib/allure_ruby_commons/allure_lifecycle.rb +10 -10
- data/lib/allure_ruby_commons/config.rb +30 -1
- data/lib/allure_ruby_commons/file_writer.rb +3 -6
- data/lib/allure_ruby_commons/model/{jsonable.rb → 01_jsonable.rb} +5 -11
- data/lib/allure_ruby_commons/model/attachment.rb +0 -2
- data/lib/allure_ruby_commons/model/category.rb +0 -2
- data/lib/allure_ruby_commons/model/executable_item.rb +0 -2
- data/lib/allure_ruby_commons/model/label.rb +0 -2
- data/lib/allure_ruby_commons/model/link.rb +0 -2
- data/lib/allure_ruby_commons/model/parameter.rb +0 -2
- data/lib/allure_ruby_commons/model/test_result_container.rb +0 -2
- metadata +34 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: be70de370f6d6732ca70063312ccb4ffd0cf27ede2c50f53f7427ba718ce11d9
|
|
4
|
+
data.tar.gz: 67b723e4ef1b8092f279a27a9c250a093124b8f78c93dbc34a8655afc29420bd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c10538c94a3334367b08d536db7f2449ef184201d7c5d95e02914c018ad4691b80dac94e898ee03d10e53f98741532afec30192b4e558be1ad19aeaf27324eb2
|
|
7
|
+
data.tar.gz: dad294ed8428f5e84a514203f8515cbe7241ebab5535ceb5163c2cf83df589ba5874ad5bd8aa3f820e5e18b42e92436567c96b8d5f5f3ab2554447ef1f4915b7
|
data/lib/allure-ruby-commons.rb
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
require "require_all"
|
|
5
5
|
require "uuid"
|
|
6
|
+
|
|
6
7
|
require_rel "allure_ruby_commons/**/*rb"
|
|
7
8
|
|
|
8
9
|
# Namespace for classes that handle allure report generation and different framework adaptors
|
|
@@ -161,15 +162,17 @@ module Allure
|
|
|
161
162
|
lifecycle.stop_test_step
|
|
162
163
|
end
|
|
163
164
|
|
|
164
|
-
# Run passed block as step with given name
|
|
165
|
+
# Run passed block as step with given name and return result of yield
|
|
165
166
|
# @param [String] name
|
|
166
167
|
# @yield [] step block
|
|
167
|
-
# @return [
|
|
168
|
+
# @return [Object]
|
|
168
169
|
def run_step(name)
|
|
169
170
|
lifecycle.start_test_step(StepResult.new(name: name, stage: Stage::RUNNING))
|
|
170
|
-
yield
|
|
171
|
+
result = yield
|
|
171
172
|
lifecycle.update_test_step { |step| step.status = Status::PASSED }
|
|
172
|
-
|
|
173
|
+
|
|
174
|
+
result
|
|
175
|
+
rescue StandardError => e
|
|
173
176
|
lifecycle.update_test_step do |step|
|
|
174
177
|
step.status = ResultUtils.status(e)
|
|
175
178
|
step.status_details = ResultUtils.status_details(e)
|
|
@@ -5,13 +5,13 @@ require "forwardable"
|
|
|
5
5
|
|
|
6
6
|
module Allure
|
|
7
7
|
# Main class for creating and writing allure results
|
|
8
|
-
class AllureLifecycle
|
|
8
|
+
class AllureLifecycle # rubocop:disable Metrics/ClassLength
|
|
9
9
|
extend Forwardable
|
|
10
10
|
|
|
11
11
|
def initialize
|
|
12
12
|
@test_context = []
|
|
13
13
|
@step_context = []
|
|
14
|
-
@logger = Logger.new(
|
|
14
|
+
@logger = Logger.new($stdout, level: Config.instance.logging_level)
|
|
15
15
|
@file_writer = FileWriter.new
|
|
16
16
|
end
|
|
17
17
|
|
|
@@ -133,7 +133,7 @@ module Allure
|
|
|
133
133
|
def stop_test_step
|
|
134
134
|
return logger.error { "Could not stop test step, no step is running" } unless current_test_step
|
|
135
135
|
|
|
136
|
-
logger.debug { "
|
|
136
|
+
logger.debug { "Stopping test step: #{current_test_step.name}" }
|
|
137
137
|
current_test_step.stop = ResultUtils.timestamp
|
|
138
138
|
current_test_step.stage = Stage::FINISHED
|
|
139
139
|
clear_last_test_step
|
|
@@ -204,13 +204,13 @@ module Allure
|
|
|
204
204
|
# @param [Boolean] test_case add attachment to current test case
|
|
205
205
|
# @return [void]
|
|
206
206
|
def add_attachment(name:, source:, type:, test_case: false)
|
|
207
|
-
attachment = ResultUtils.prepare_attachment(name, type)
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
executable_item =
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
207
|
+
attachment = ResultUtils.prepare_attachment(name, type)
|
|
208
|
+
return logger.error { "Can't add attachment, unrecognized mime type: #{type}" } unless attachment
|
|
209
|
+
|
|
210
|
+
executable_item = test_case ? @current_test_case : current_executable
|
|
211
|
+
return logger.error { "Can't add attachment, no test, step or fixture is running" } unless executable_item
|
|
212
|
+
|
|
213
|
+
executable_item.attachments.push(attachment)
|
|
214
214
|
logger.debug { "Adding attachment '#{name}' to '#{executable_item.name}'" }
|
|
215
215
|
write_attachment(source, attachment)
|
|
216
216
|
end
|
|
@@ -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
|
-
|
|
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
|
|
@@ -18,17 +18,14 @@ module Allure
|
|
|
18
18
|
# @param [Allure::TestResult] test_result
|
|
19
19
|
# @return [void]
|
|
20
20
|
def write_test_result(test_result)
|
|
21
|
-
write("#{test_result.uuid}#{TEST_RESULT_SUFFIX}",
|
|
21
|
+
write("#{test_result.uuid}#{TEST_RESULT_SUFFIX}", Oj.dump(test_result))
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
# Write test result container
|
|
25
25
|
# @param [Allure::TestResultContainer] test_container_result
|
|
26
26
|
# @return [void]
|
|
27
27
|
def write_test_result_container(test_container_result)
|
|
28
|
-
write(
|
|
29
|
-
"#{test_container_result.uuid}#{TEST_RESULT_CONTAINER_SUFFIX}",
|
|
30
|
-
JSON.generate(test_container_result, max_nesting: false),
|
|
31
|
-
)
|
|
28
|
+
write("#{test_container_result.uuid}#{TEST_RESULT_CONTAINER_SUFFIX}", Oj.dump(test_container_result))
|
|
32
29
|
end
|
|
33
30
|
|
|
34
31
|
# Write allure attachment file
|
|
@@ -55,7 +52,7 @@ module Allure
|
|
|
55
52
|
if categories.is_a?(File)
|
|
56
53
|
copy(categories.path, CATEGORIES_FILE)
|
|
57
54
|
else
|
|
58
|
-
write(CATEGORIES_FILE, categories
|
|
55
|
+
write(CATEGORIES_FILE, Oj.dump(categories))
|
|
59
56
|
end
|
|
60
57
|
end
|
|
61
58
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require "
|
|
3
|
+
require "oj"
|
|
4
4
|
|
|
5
5
|
module Allure
|
|
6
6
|
# General jsonable object implementation
|
|
7
7
|
class JSONable
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
Oj.default_options = { mode: :custom, use_to_hash: true, ascii_only: true }
|
|
9
|
+
|
|
10
|
+
# Return object hash represantation
|
|
10
11
|
# @return [Hash]
|
|
11
|
-
def
|
|
12
|
+
def to_hash
|
|
12
13
|
instance_variables.each_with_object({}) do |var, map|
|
|
13
14
|
key = camelcase(var.to_s.delete_prefix("@"))
|
|
14
15
|
value = instance_variable_get(var)
|
|
@@ -16,13 +17,6 @@ module Allure
|
|
|
16
17
|
end
|
|
17
18
|
end
|
|
18
19
|
|
|
19
|
-
# Convert object to json string
|
|
20
|
-
# @param [Array<Object>] options
|
|
21
|
-
# @return [String]
|
|
22
|
-
def to_json(*options)
|
|
23
|
-
as_json.to_json(*options)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
20
|
# Object comparator
|
|
27
21
|
# @param [JSONable] other
|
|
28
22
|
# @return [Booelan]
|
metadata
CHANGED
|
@@ -1,36 +1,42 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: allure-ruby-commons
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.13.
|
|
4
|
+
version: 2.13.8.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrejs Cunskis
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-02-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: mime-types
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
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
|
|
23
26
|
requirements:
|
|
24
|
-
- - "
|
|
27
|
+
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
29
|
+
version: '3.3'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '4'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
34
|
+
name: oj
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
30
36
|
requirements:
|
|
31
37
|
- - ">="
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
39
|
+
version: '3.10'
|
|
34
40
|
- - "<"
|
|
35
41
|
- !ruby/object:Gem::Version
|
|
36
42
|
version: '4'
|
|
@@ -40,44 +46,50 @@ dependencies:
|
|
|
40
46
|
requirements:
|
|
41
47
|
- - ">="
|
|
42
48
|
- !ruby/object:Gem::Version
|
|
43
|
-
version: '
|
|
49
|
+
version: '3.10'
|
|
44
50
|
- - "<"
|
|
45
51
|
- !ruby/object:Gem::Version
|
|
46
52
|
version: '4'
|
|
47
53
|
- !ruby/object:Gem::Dependency
|
|
48
|
-
name:
|
|
54
|
+
name: require_all
|
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|
|
50
56
|
requirements:
|
|
51
57
|
- - ">="
|
|
52
58
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
59
|
+
version: '2'
|
|
54
60
|
- - "<"
|
|
55
61
|
- !ruby/object:Gem::Version
|
|
56
|
-
version: '
|
|
62
|
+
version: '4'
|
|
57
63
|
type: :runtime
|
|
58
64
|
prerelease: false
|
|
59
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
60
66
|
requirements:
|
|
61
67
|
- - ">="
|
|
62
68
|
- !ruby/object:Gem::Version
|
|
63
|
-
version: '
|
|
69
|
+
version: '2'
|
|
64
70
|
- - "<"
|
|
65
71
|
- !ruby/object:Gem::Version
|
|
66
|
-
version: '
|
|
72
|
+
version: '4'
|
|
67
73
|
- !ruby/object:Gem::Dependency
|
|
68
|
-
name:
|
|
74
|
+
name: uuid
|
|
69
75
|
requirement: !ruby/object:Gem::Requirement
|
|
70
76
|
requirements:
|
|
71
|
-
- - "
|
|
77
|
+
- - ">="
|
|
72
78
|
- !ruby/object:Gem::Version
|
|
73
|
-
version: '
|
|
79
|
+
version: '2.3'
|
|
80
|
+
- - "<"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '3'
|
|
74
83
|
type: :runtime
|
|
75
84
|
prerelease: false
|
|
76
85
|
version_requirements: !ruby/object:Gem::Requirement
|
|
77
86
|
requirements:
|
|
78
|
-
- - "
|
|
87
|
+
- - ">="
|
|
79
88
|
- !ruby/object:Gem::Version
|
|
80
|
-
version: '
|
|
89
|
+
version: '2.3'
|
|
90
|
+
- - "<"
|
|
91
|
+
- !ruby/object:Gem::Version
|
|
92
|
+
version: '3'
|
|
81
93
|
description: Utilities allowing to implement allure result generation by other test
|
|
82
94
|
frameworks
|
|
83
95
|
email: andrejs.cunskis@gmail.com
|
|
@@ -90,12 +102,12 @@ files:
|
|
|
90
102
|
- lib/allure_ruby_commons/allure_lifecycle.rb
|
|
91
103
|
- lib/allure_ruby_commons/config.rb
|
|
92
104
|
- lib/allure_ruby_commons/file_writer.rb
|
|
105
|
+
- lib/allure_ruby_commons/model/01_jsonable.rb
|
|
93
106
|
- lib/allure_ruby_commons/model/attachment.rb
|
|
94
107
|
- lib/allure_ruby_commons/model/category.rb
|
|
95
108
|
- lib/allure_ruby_commons/model/content_type.rb
|
|
96
109
|
- lib/allure_ruby_commons/model/executable_item.rb
|
|
97
110
|
- lib/allure_ruby_commons/model/fixture_result.rb
|
|
98
|
-
- lib/allure_ruby_commons/model/jsonable.rb
|
|
99
111
|
- lib/allure_ruby_commons/model/label.rb
|
|
100
112
|
- lib/allure_ruby_commons/model/link.rb
|
|
101
113
|
- lib/allure_ruby_commons/model/parameter.rb
|
|
@@ -130,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
130
142
|
- !ruby/object:Gem::Version
|
|
131
143
|
version: '0'
|
|
132
144
|
requirements: []
|
|
133
|
-
rubygems_version: 3.
|
|
145
|
+
rubygems_version: 3.2.3
|
|
134
146
|
signing_key:
|
|
135
147
|
specification_version: 4
|
|
136
148
|
summary: Common library for allure results generation
|