cucumber 9.1.2 → 9.2.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/VERSION +1 -1
- data/lib/cucumber/cli/options.rb +8 -19
- data/lib/cucumber/formatter/console_issues.rb +2 -2
- data/lib/cucumber/formatter/curl_option_parser.rb +49 -0
- data/lib/cucumber/formatter/fail_fast.rb +1 -1
- data/lib/cucumber/formatter/http_io.rb +8 -142
- data/lib/cucumber/formatter/io_http_buffer.rb +88 -0
- data/lib/cucumber/formatter/junit.rb +3 -3
- data/lib/cucumber/formatter/pretty.rb +1 -1
- data/lib/cucumber/formatter/rerun.rb +3 -3
- data/lib/cucumber/formatter/url_reporter.rb +1 -1
- data/lib/cucumber/runtime.rb +1 -1
- metadata +25 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c84d3e0ab90cabd1d67121371c8a95c0e5f91bfa5f3ec42a1024c1a85130bde
|
4
|
+
data.tar.gz: 1386d49afc93d04c9b616f38ab4466c8aa3092aa60a293c82557465ad8b4538a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afd28a66515dbb07168f7c906d1de7feb5c780437a22b0492f218db943555bc996e7dfc77750257033c9ae8c843e350ca12c389963b78e6ddf1c58dc3f1df371
|
7
|
+
data.tar.gz: bd21e8e340afc215e887be2e353fd9060a4a4ccf1975298403ed6487e263b4103ef01a73e069f16758cc286ba6d507ae0e2f4b9d72916fb976cbbe440af9d154
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
9.
|
1
|
+
9.2.0
|
data/lib/cucumber/cli/options.rb
CHANGED
@@ -116,10 +116,10 @@ module Cucumber
|
|
116
116
|
opts.on('-f FORMAT', '--format FORMAT', *format_msg, *FORMAT_HELP) do |v|
|
117
117
|
add_option :formats, [*parse_formats(v), @out_stream]
|
118
118
|
end
|
119
|
-
opts.on('--init', *init_msg) {
|
119
|
+
opts.on('--init', *init_msg) { initialize_project }
|
120
120
|
opts.on('-o', '--out [FILE|DIR|URL]', *out_msg) { |v| out_stream v }
|
121
|
-
opts.on('-t TAG_EXPRESSION', '--tags TAG_EXPRESSION', *tags_msg) { |v| add_tag
|
122
|
-
opts.on('-n NAME', '--name NAME', *name_msg) { |v| add_option
|
121
|
+
opts.on('-t TAG_EXPRESSION', '--tags TAG_EXPRESSION', *tags_msg) { |v| add_tag(v) }
|
122
|
+
opts.on('-n NAME', '--name NAME', *name_msg) { |v| add_option(:name_regexps, /#{v}/) }
|
123
123
|
opts.on('-e', '--exclude PATTERN', *exclude_msg) { |v| add_option :excludes, Regexp.new(v) }
|
124
124
|
opts.on(PROFILE_SHORT_FLAG, "#{PROFILE_LONG_FLAG} PROFILE", *profile_short_flag_msg) { |v| add_profile v }
|
125
125
|
opts.on(NO_PROFILE_SHORT_FLAG, NO_PROFILE_LONG_FLAG, *no_profile_short_flag_msg) { |_v| disable_profile_loading }
|
@@ -301,9 +301,9 @@ module Cucumber
|
|
301
301
|
[formatter, options_hash]
|
302
302
|
end
|
303
303
|
|
304
|
-
def out_stream(
|
304
|
+
def out_stream(value)
|
305
305
|
@options[:formats] << ['pretty', {}, nil] if @options[:formats].empty?
|
306
|
-
@options[:formats][-1][2] =
|
306
|
+
@options[:formats][-1][2] = value
|
307
307
|
end
|
308
308
|
|
309
309
|
def tags_msg
|
@@ -455,7 +455,7 @@ module Cucumber
|
|
455
455
|
end
|
456
456
|
|
457
457
|
def exit_ok(text)
|
458
|
-
@out_stream.puts
|
458
|
+
@out_stream.puts(text)
|
459
459
|
Kernel.exit(0)
|
460
460
|
end
|
461
461
|
|
@@ -483,22 +483,11 @@ module Cucumber
|
|
483
483
|
end
|
484
484
|
end
|
485
485
|
|
486
|
-
def disable_profile_loading?
|
487
|
-
@disable_profile_loading
|
488
|
-
end
|
489
|
-
|
490
486
|
def merge_profiles
|
491
|
-
if @disable_profile_loading
|
492
|
-
@out_stream.puts 'Disabling profiles...'
|
493
|
-
return
|
494
|
-
end
|
487
|
+
return @out_stream.puts 'Disabling profiles...' if @disable_profile_loading
|
495
488
|
|
496
489
|
@profiles << @default_profile if default_profile_should_be_used?
|
497
|
-
|
498
|
-
@profiles.each do |profile|
|
499
|
-
merge_with_profile(profile)
|
500
|
-
end
|
501
|
-
|
490
|
+
@profiles.each { |profile| merge_with_profile(profile) }
|
502
491
|
@options[:profiles] = @profiles
|
503
492
|
end
|
504
493
|
|
@@ -14,9 +14,9 @@ module Cucumber
|
|
14
14
|
@config.on_event(:test_case_finished) do |event|
|
15
15
|
if event.test_case != @previous_test_case
|
16
16
|
@previous_test_case = event.test_case
|
17
|
-
@issues[event.result.to_sym] << event.test_case unless event.result.ok?(@config.strict)
|
17
|
+
@issues[event.result.to_sym] << event.test_case unless event.result.ok?(strict: @config.strict)
|
18
18
|
elsif event.result.passed?
|
19
|
-
@issues[:flaky] << event.test_case unless Core::Test::Result::Flaky.ok?(@config.strict.strict?(:flaky))
|
19
|
+
@issues[:flaky] << event.test_case unless Core::Test::Result::Flaky.ok?(strict: @config.strict.strict?(:flaky))
|
20
20
|
@issues[:failed].delete(event.test_case)
|
21
21
|
end
|
22
22
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'shellwords'
|
4
|
+
|
5
|
+
module Cucumber
|
6
|
+
module Formatter
|
7
|
+
class CurlOptionParser
|
8
|
+
def self.parse(options)
|
9
|
+
args = Shellwords.split(options)
|
10
|
+
|
11
|
+
url = nil
|
12
|
+
http_method = 'PUT'
|
13
|
+
headers = {}
|
14
|
+
|
15
|
+
until args.empty?
|
16
|
+
arg = args.shift
|
17
|
+
case arg
|
18
|
+
when '-X', '--request'
|
19
|
+
http_method = remove_arg_for(args, arg)
|
20
|
+
when '-H'
|
21
|
+
header_arg = remove_arg_for(args, arg)
|
22
|
+
headers = headers.merge(parse_header(header_arg))
|
23
|
+
else
|
24
|
+
raise StandardError, "#{options} was not a valid curl command. Can't set url to #{arg} it is already set to #{url}" if url
|
25
|
+
|
26
|
+
url = arg
|
27
|
+
end
|
28
|
+
end
|
29
|
+
raise StandardError, "#{options} was not a valid curl command" unless url
|
30
|
+
|
31
|
+
[url, http_method, headers]
|
32
|
+
end
|
33
|
+
|
34
|
+
# TODO: [LH] -> Switch below methods to private
|
35
|
+
def self.remove_arg_for(args, arg)
|
36
|
+
return args.shift unless args.empty?
|
37
|
+
|
38
|
+
raise StandardError, "Missing argument for #{arg}"
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.parse_header(header_arg)
|
42
|
+
parts = header_arg.split(':', 2)
|
43
|
+
raise StandardError, "#{header_arg} was not a valid header" unless parts.length == 2
|
44
|
+
|
45
|
+
{ parts[0].strip => parts[1].strip }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -12,7 +12,7 @@ module Cucumber
|
|
12
12
|
test_case, result = *event.attributes
|
13
13
|
if test_case != @previous_test_case
|
14
14
|
@previous_test_case = event.test_case
|
15
|
-
Cucumber.wants_to_quit = true unless result.ok?(configuration.strict)
|
15
|
+
Cucumber.wants_to_quit = true unless result.ok?(strict: configuration.strict)
|
16
16
|
elsif result.passed?
|
17
17
|
Cucumber.wants_to_quit = false
|
18
18
|
end
|
@@ -2,152 +2,18 @@
|
|
2
2
|
|
3
3
|
require 'net/http'
|
4
4
|
require 'tempfile'
|
5
|
-
|
5
|
+
require_relative 'curl_option_parser'
|
6
|
+
require_relative 'io_http_buffer'
|
6
7
|
|
7
8
|
module Cucumber
|
8
9
|
module Formatter
|
9
10
|
class HTTPIO
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
uri, method, headers = CurlOptionParser.parse(url)
|
17
|
-
IOHTTPBuffer.new(uri, method, headers, https_verify_mode, reporter)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
class CurlOptionParser
|
23
|
-
def self.parse(options)
|
24
|
-
args = Shellwords.split(options)
|
25
|
-
|
26
|
-
url = nil
|
27
|
-
http_method = 'PUT'
|
28
|
-
headers = {}
|
29
|
-
|
30
|
-
until args.empty?
|
31
|
-
arg = args.shift
|
32
|
-
case arg
|
33
|
-
when '-X', '--request'
|
34
|
-
http_method = remove_arg_for(args, arg)
|
35
|
-
when '-H'
|
36
|
-
header_arg = remove_arg_for(args, arg)
|
37
|
-
headers = headers.merge(parse_header(header_arg))
|
38
|
-
else
|
39
|
-
raise StandardError, "#{options} was not a valid curl command. Can't set url to #{arg} it is already set to #{url}" if url
|
40
|
-
|
41
|
-
url = arg
|
42
|
-
end
|
43
|
-
end
|
44
|
-
raise StandardError, "#{options} was not a valid curl command" unless url
|
45
|
-
|
46
|
-
[
|
47
|
-
url,
|
48
|
-
http_method,
|
49
|
-
headers
|
50
|
-
]
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.remove_arg_for(args, arg)
|
54
|
-
return args.shift unless args.empty?
|
55
|
-
|
56
|
-
raise StandardError, "Missing argument for #{arg}"
|
57
|
-
end
|
58
|
-
|
59
|
-
def self.parse_header(header_arg)
|
60
|
-
parts = header_arg.split(':', 2)
|
61
|
-
raise StandardError, "#{header_arg} was not a valid header" unless parts.length == 2
|
62
|
-
|
63
|
-
{ parts[0].strip => parts[1].strip }
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
class IOHTTPBuffer
|
68
|
-
attr_reader :uri, :method, :headers
|
69
|
-
|
70
|
-
def initialize(uri, method, headers = {}, https_verify_mode = nil, reporter = nil)
|
71
|
-
@uri = URI(uri)
|
72
|
-
@method = method
|
73
|
-
@headers = headers
|
74
|
-
@write_io = Tempfile.new('cucumber', encoding: 'UTF-8')
|
75
|
-
@https_verify_mode = https_verify_mode
|
76
|
-
@reporter = reporter || NoReporter.new
|
77
|
-
end
|
78
|
-
|
79
|
-
def close
|
80
|
-
response = send_content(@uri, @method, @headers)
|
81
|
-
@reporter.report(response.body)
|
82
|
-
@write_io.close
|
83
|
-
return if response.is_a?(Net::HTTPSuccess) || response.is_a?(Net::HTTPRedirection)
|
84
|
-
|
85
|
-
raise StandardError, "request to #{uri} failed with status #{response.code}"
|
86
|
-
end
|
87
|
-
|
88
|
-
def write(data)
|
89
|
-
@write_io.write(data)
|
90
|
-
end
|
91
|
-
|
92
|
-
def flush
|
93
|
-
@write_io.flush
|
94
|
-
end
|
95
|
-
|
96
|
-
def closed?
|
97
|
-
@write_io.closed?
|
98
|
-
end
|
99
|
-
|
100
|
-
private
|
101
|
-
|
102
|
-
def send_content(uri, method, headers, attempt = 10)
|
103
|
-
content = (method == 'GET' ? StringIO.new : @write_io)
|
104
|
-
http = build_client(uri, @https_verify_mode)
|
105
|
-
|
106
|
-
raise StandardError, "request to #{uri} failed (too many redirections)" if attempt <= 0
|
107
|
-
|
108
|
-
req = build_request(
|
109
|
-
uri,
|
110
|
-
method,
|
111
|
-
headers.merge(
|
112
|
-
'Content-Length' => content.size.to_s
|
113
|
-
)
|
114
|
-
)
|
115
|
-
|
116
|
-
content.rewind
|
117
|
-
req.body_stream = content
|
118
|
-
|
119
|
-
begin
|
120
|
-
response = http.request(req)
|
121
|
-
rescue SystemCallError
|
122
|
-
# We may get the redirect response before pushing the file.
|
123
|
-
response = http.request(build_request(uri, method, headers))
|
124
|
-
end
|
125
|
-
|
126
|
-
case response
|
127
|
-
when Net::HTTPAccepted
|
128
|
-
send_content(URI(response['Location']), 'PUT', {}, attempt - 1) if response['Location']
|
129
|
-
when Net::HTTPRedirection
|
130
|
-
send_content(URI(response['Location']), method, headers, attempt - 1)
|
131
|
-
end
|
132
|
-
response
|
133
|
-
end
|
134
|
-
|
135
|
-
def build_request(uri, method, headers)
|
136
|
-
method_class_name = "#{method[0].upcase}#{method[1..].downcase}"
|
137
|
-
req = Net::HTTP.const_get(method_class_name).new(uri)
|
138
|
-
headers.each do |header, value|
|
139
|
-
req[header] = value
|
140
|
-
end
|
141
|
-
req
|
142
|
-
end
|
143
|
-
|
144
|
-
def build_client(uri, https_verify_mode)
|
145
|
-
http = Net::HTTP.new(uri.hostname, uri.port)
|
146
|
-
if uri.scheme == 'https'
|
147
|
-
http.use_ssl = true
|
148
|
-
http.verify_mode = https_verify_mode if https_verify_mode
|
149
|
-
end
|
150
|
-
http
|
11
|
+
# Returns an IO that will write to a HTTP request's body
|
12
|
+
# https_verify_mode can be set to OpenSSL::SSL::VERIFY_NONE
|
13
|
+
# to ignore unsigned certificate - setting to nil will verify the certificate
|
14
|
+
def self.open(url, https_verify_mode = nil, reporter = nil)
|
15
|
+
uri, method, headers = CurlOptionParser.parse(url)
|
16
|
+
IOHTTPBuffer.new(uri, method, headers, https_verify_mode, reporter)
|
151
17
|
end
|
152
18
|
end
|
153
19
|
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module Formatter
|
5
|
+
class IOHTTPBuffer
|
6
|
+
attr_reader :uri, :method, :headers
|
7
|
+
|
8
|
+
def initialize(uri, method, headers = {}, https_verify_mode = nil, reporter = nil)
|
9
|
+
@uri = URI(uri)
|
10
|
+
@method = method
|
11
|
+
@headers = headers
|
12
|
+
@write_io = Tempfile.new('cucumber', encoding: 'UTF-8')
|
13
|
+
@https_verify_mode = https_verify_mode
|
14
|
+
@reporter = reporter || NoReporter.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def close
|
18
|
+
@reporter.report(response.body)
|
19
|
+
@write_io.close
|
20
|
+
return if response.is_a?(Net::HTTPSuccess) || response.is_a?(Net::HTTPRedirection)
|
21
|
+
|
22
|
+
raise StandardError, "request to #{uri} failed with status #{response.code}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def write(data)
|
26
|
+
@write_io.write(data)
|
27
|
+
end
|
28
|
+
|
29
|
+
def flush
|
30
|
+
@write_io.flush
|
31
|
+
end
|
32
|
+
|
33
|
+
def closed?
|
34
|
+
@write_io.closed?
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def response
|
40
|
+
@response ||= send_content(uri, method, headers)
|
41
|
+
end
|
42
|
+
|
43
|
+
def send_content(uri, method, headers, attempts_remaining = 10)
|
44
|
+
content = (method == 'GET' ? StringIO.new : @write_io)
|
45
|
+
http = build_client(uri)
|
46
|
+
|
47
|
+
raise StandardError, "request to #{uri} failed (too many redirections)" if attempts_remaining <= 0
|
48
|
+
|
49
|
+
request = build_request(uri, method, headers.merge('Content-Length' => content.size.to_s))
|
50
|
+
content.rewind
|
51
|
+
request.body_stream = content
|
52
|
+
|
53
|
+
begin
|
54
|
+
response = http.request(request)
|
55
|
+
rescue SystemCallError
|
56
|
+
# We may get the redirect response before pushing the file.
|
57
|
+
response = http.request(build_request(uri, method, headers))
|
58
|
+
end
|
59
|
+
|
60
|
+
case response
|
61
|
+
when Net::HTTPAccepted
|
62
|
+
send_content(URI(response['Location']), 'PUT', {}, attempts_remaining - 1) if response['Location']
|
63
|
+
when Net::HTTPRedirection
|
64
|
+
send_content(URI(response['Location']), method, headers, attempts_remaining - 1)
|
65
|
+
end
|
66
|
+
response
|
67
|
+
end
|
68
|
+
|
69
|
+
def build_request(uri, method, headers)
|
70
|
+
method_class_name = "#{method[0].upcase}#{method[1..].downcase}"
|
71
|
+
Net::HTTP.const_get(method_class_name).new(uri).tap do |request|
|
72
|
+
headers.each do |header, value|
|
73
|
+
request[header] = value
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def build_client(uri)
|
79
|
+
Net::HTTP.new(uri.hostname, uri.port).tap do |http|
|
80
|
+
if uri.scheme == 'https'
|
81
|
+
http.use_ssl = true
|
82
|
+
http.verify_mode = @https_verify_mode if @https_verify_mode
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -54,7 +54,7 @@ module Cucumber
|
|
54
54
|
test_step, result = *event.attributes
|
55
55
|
return if @failing_test_step
|
56
56
|
|
57
|
-
@failing_test_step = test_step unless result.ok?(@config.strict)
|
57
|
+
@failing_test_step = test_step unless result.ok?(strict: @config.strict)
|
58
58
|
end
|
59
59
|
|
60
60
|
def on_test_case_finished(event)
|
@@ -111,7 +111,7 @@ module Cucumber
|
|
111
111
|
scenario_source = @ast_lookup.scenario_source(test_case)
|
112
112
|
keyword = scenario_source.type == :Scenario ? scenario_source.scenario.keyword : scenario_source.scenario_outline.keyword
|
113
113
|
output = "#{keyword}: #{scenario}\n\n"
|
114
|
-
return output if result.ok?(@config.strict)
|
114
|
+
return output if result.ok?(strict: @config.strict)
|
115
115
|
|
116
116
|
if scenario_source.type == :Scenario
|
117
117
|
if @failing_test_step
|
@@ -140,7 +140,7 @@ module Cucumber
|
|
140
140
|
testcase_attributes = get_testcase_attributes(classname, name, duration, filename)
|
141
141
|
|
142
142
|
@current_feature_data[:builder].testcase(testcase_attributes) do
|
143
|
-
if !result.passed? && result.ok?(@config.strict)
|
143
|
+
if !result.passed? && result.ok?(strict: @config.strict)
|
144
144
|
@current_feature_data[:builder].skipped
|
145
145
|
@current_feature_data[:skipped] += 1
|
146
146
|
elsif !result.passed?
|
@@ -153,7 +153,7 @@ module Cucumber
|
|
153
153
|
private
|
154
154
|
|
155
155
|
def find_exception_to_be_printed(result)
|
156
|
-
return nil if result.ok?(options[:strict])
|
156
|
+
return nil if result.ok?(strict: options[:strict])
|
157
157
|
|
158
158
|
result = result.with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter)
|
159
159
|
exception = result.failed? ? result.exception : result
|
@@ -14,7 +14,7 @@ module Cucumber
|
|
14
14
|
config.on_event :test_case_finished do |event|
|
15
15
|
test_case, result = *event.attributes
|
16
16
|
if @config.strict.strict?(:flaky)
|
17
|
-
next if result.ok?(@config.strict)
|
17
|
+
next if result.ok?(strict: @config.strict)
|
18
18
|
|
19
19
|
add_to_failures(test_case)
|
20
20
|
else
|
@@ -22,11 +22,11 @@ module Cucumber
|
|
22
22
|
if @latest_failed_test_case != test_case
|
23
23
|
add_to_failures(@latest_failed_test_case)
|
24
24
|
@latest_failed_test_case = nil
|
25
|
-
elsif result.ok?(@config.strict)
|
25
|
+
elsif result.ok?(strict: @config.strict)
|
26
26
|
@latest_failed_test_case = nil
|
27
27
|
end
|
28
28
|
end
|
29
|
-
@latest_failed_test_case = test_case unless result.ok?(@config.strict)
|
29
|
+
@latest_failed_test_case = test_case unless result.ok?(strict: @config.strict)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
config.on_event :test_run_finished do
|
data/lib/cucumber/runtime.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aslak Hellesøy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-
|
13
|
+
date: 2024-03-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: builder
|
@@ -19,9 +19,6 @@ dependencies:
|
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '3.2'
|
22
|
-
- - ">="
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 3.2.4
|
25
22
|
type: :runtime
|
26
23
|
prerelease: false
|
27
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,43 +26,46 @@ dependencies:
|
|
29
26
|
- - "~>"
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: '3.2'
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 3.2.4
|
35
29
|
- !ruby/object:Gem::Dependency
|
36
30
|
name: cucumber-ci-environment
|
37
31
|
requirement: !ruby/object:Gem::Requirement
|
38
32
|
requirements:
|
39
|
-
- - "
|
33
|
+
- - ">"
|
40
34
|
- !ruby/object:Gem::Version
|
41
|
-
version: '9
|
42
|
-
- - "
|
35
|
+
version: '9'
|
36
|
+
- - "<"
|
43
37
|
- !ruby/object:Gem::Version
|
44
|
-
version:
|
38
|
+
version: '11'
|
45
39
|
type: :runtime
|
46
40
|
prerelease: false
|
47
41
|
version_requirements: !ruby/object:Gem::Requirement
|
48
42
|
requirements:
|
49
|
-
- - "
|
43
|
+
- - ">"
|
50
44
|
- !ruby/object:Gem::Version
|
51
|
-
version: '9
|
52
|
-
- - "
|
45
|
+
version: '9'
|
46
|
+
- - "<"
|
53
47
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
48
|
+
version: '11'
|
55
49
|
- !ruby/object:Gem::Dependency
|
56
50
|
name: cucumber-core
|
57
51
|
requirement: !ruby/object:Gem::Requirement
|
58
52
|
requirements:
|
59
|
-
- - "
|
53
|
+
- - ">"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '13'
|
56
|
+
- - "<"
|
60
57
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
58
|
+
version: '14'
|
62
59
|
type: :runtime
|
63
60
|
prerelease: false
|
64
61
|
version_requirements: !ruby/object:Gem::Requirement
|
65
62
|
requirements:
|
66
|
-
- - "
|
63
|
+
- - ">"
|
67
64
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
65
|
+
version: '13'
|
66
|
+
- - "<"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '14'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: cucumber-cucumber-expressions
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: '24'
|
90
90
|
- - "<"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: '
|
92
|
+
version: '28'
|
93
93
|
type: :runtime
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -99,7 +99,7 @@ dependencies:
|
|
99
99
|
version: '24'
|
100
100
|
- - "<"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
102
|
+
version: '28'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: cucumber-html-formatter
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,9 +161,6 @@ dependencies:
|
|
161
161
|
- - "~>"
|
162
162
|
- !ruby/object:Gem::Version
|
163
163
|
version: '1.1'
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: 1.1.5
|
167
164
|
type: :runtime
|
168
165
|
prerelease: false
|
169
166
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -171,9 +168,6 @@ dependencies:
|
|
171
168
|
- - "~>"
|
172
169
|
- !ruby/object:Gem::Version
|
173
170
|
version: '1.1'
|
174
|
-
- - ">="
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version: 1.1.5
|
177
171
|
- !ruby/object:Gem::Dependency
|
178
172
|
name: multi_test
|
179
173
|
requirement: !ruby/object:Gem::Requirement
|
@@ -181,9 +175,6 @@ dependencies:
|
|
181
175
|
- - "~>"
|
182
176
|
- !ruby/object:Gem::Version
|
183
177
|
version: '1.1'
|
184
|
-
- - ">="
|
185
|
-
- !ruby/object:Gem::Version
|
186
|
-
version: 1.1.0
|
187
178
|
type: :runtime
|
188
179
|
prerelease: false
|
189
180
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -191,9 +182,6 @@ dependencies:
|
|
191
182
|
- - "~>"
|
192
183
|
- !ruby/object:Gem::Version
|
193
184
|
version: '1.1'
|
194
|
-
- - ">="
|
195
|
-
- !ruby/object:Gem::Version
|
196
|
-
version: 1.1.0
|
197
185
|
- !ruby/object:Gem::Dependency
|
198
186
|
name: sys-uname
|
199
187
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,9 +189,6 @@ dependencies:
|
|
201
189
|
- - "~>"
|
202
190
|
- !ruby/object:Gem::Version
|
203
191
|
version: '1.2'
|
204
|
-
- - ">="
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
version: 1.2.3
|
207
192
|
type: :runtime
|
208
193
|
prerelease: false
|
209
194
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -211,9 +196,6 @@ dependencies:
|
|
211
196
|
- - "~>"
|
212
197
|
- !ruby/object:Gem::Version
|
213
198
|
version: '1.2'
|
214
|
-
- - ">="
|
215
|
-
- !ruby/object:Gem::Version
|
216
|
-
version: 1.2.3
|
217
199
|
- !ruby/object:Gem::Dependency
|
218
200
|
name: cucumber-compatibility-kit
|
219
201
|
requirement: !ruby/object:Gem::Requirement
|
@@ -430,6 +412,7 @@ files:
|
|
430
412
|
- lib/cucumber/formatter/console.rb
|
431
413
|
- lib/cucumber/formatter/console_counts.rb
|
432
414
|
- lib/cucumber/formatter/console_issues.rb
|
415
|
+
- lib/cucumber/formatter/curl_option_parser.rb
|
433
416
|
- lib/cucumber/formatter/duration.rb
|
434
417
|
- lib/cucumber/formatter/duration_extractor.rb
|
435
418
|
- lib/cucumber/formatter/errors.rb
|
@@ -440,6 +423,7 @@ files:
|
|
440
423
|
- lib/cucumber/formatter/ignore_missing_messages.rb
|
441
424
|
- lib/cucumber/formatter/interceptor.rb
|
442
425
|
- lib/cucumber/formatter/io.rb
|
426
|
+
- lib/cucumber/formatter/io_http_buffer.rb
|
443
427
|
- lib/cucumber/formatter/json.rb
|
444
428
|
- lib/cucumber/formatter/junit.rb
|
445
429
|
- lib/cucumber/formatter/message.rb
|
@@ -529,5 +513,5 @@ requirements: []
|
|
529
513
|
rubygems_version: 3.3.5
|
530
514
|
signing_key:
|
531
515
|
specification_version: 4
|
532
|
-
summary: cucumber-9.
|
516
|
+
summary: cucumber-9.2.0
|
533
517
|
test_files: []
|