cucumber 9.0.1 → 9.0.2
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/README.md +9 -13
- data/VERSION +1 -1
- data/lib/cucumber/cli/options.rb +8 -8
- data/lib/cucumber/deprecate.rb +1 -1
- data/lib/cucumber/errors.rb +2 -1
- data/lib/cucumber/events/envelope.rb +2 -0
- data/lib/cucumber/events/gherkin_source_parsed.rb +2 -0
- data/lib/cucumber/events/gherkin_source_read.rb +2 -0
- data/lib/cucumber/events/test_case_finished.rb +2 -0
- data/lib/cucumber/events/test_case_started.rb +2 -0
- data/lib/cucumber/events/test_step_finished.rb +2 -0
- data/lib/cucumber/events/test_step_started.rb +2 -0
- data/lib/cucumber/events/undefined_parameter_type.rb +2 -0
- data/lib/cucumber/file_specs.rb +1 -1
- data/lib/cucumber/formatter/console.rb +2 -5
- data/lib/cucumber/formatter/console_counts.rb +3 -1
- data/lib/cucumber/formatter/console_issues.rb +2 -0
- data/lib/cucumber/formatter/errors.rb +2 -0
- data/lib/cucumber/formatter/html.rb +2 -0
- data/lib/cucumber/formatter/http_io.rb +2 -0
- data/lib/cucumber/formatter/message_builder.rb +2 -0
- data/lib/cucumber/formatter/pretty.rb +1 -1
- data/lib/cucumber/formatter/publish_banner_printer.rb +0 -2
- data/lib/cucumber/formatter/query/hook_by_test_step.rb +2 -0
- data/lib/cucumber/formatter/query/pickle_by_test.rb +2 -0
- data/lib/cucumber/formatter/query/pickle_step_by_test_step.rb +2 -0
- data/lib/cucumber/formatter/query/step_definitions_by_test_step.rb +2 -0
- data/lib/cucumber/formatter/query/test_case_started_by_test_case.rb +2 -0
- data/lib/cucumber/formatter/unicode.rb +3 -3
- data/lib/cucumber/formatter/url_reporter.rb +2 -0
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +4 -5
- data/lib/cucumber/glue/invoke_in_world.rb +1 -1
- data/lib/cucumber/glue/proto_world.rb +2 -2
- data/lib/cucumber/glue/registry_and_more.rb +2 -1
- data/lib/cucumber/glue/snippet.rb +4 -2
- data/lib/cucumber/glue/world_factory.rb +2 -0
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +2 -0
- data/lib/cucumber/multiline_argument/data_table.rb +2 -2
- data/lib/cucumber/platform.rb +11 -16
- data/lib/cucumber/runtime/meta_message_builder.rb +2 -0
- data/lib/cucumber/runtime.rb +3 -3
- data/lib/cucumber/step_match.rb +1 -1
- data/lib/cucumber/term/ansicolor.rb +1 -1
- data/lib/cucumber/term/banner.rb +2 -0
- metadata +89 -43
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 313150f1f463d99e105864744641cd87c56e55f5d4d7856a437214a8db79dbdd
|
|
4
|
+
data.tar.gz: 90cdd041c890ab05108d3951be679f424ae096bc2df09044b26320096074eee3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 76252cc34ed4bc38ba6e7c0cec30d31b5319d14cdc9745f3e589bad8abf4713c95ec27527095b969dfd983f59ecea57f27ef9d119b68f8c032a19143d332d549
|
|
7
|
+
data.tar.gz: bef2260cd88f77daa139256c03e68b1744849667d71a3a71931d6c57a4c546e437e996ef6e7aed157520d5ff7dc1b86d2c1a1041b9dd9747f20fe53fd61dec2a
|
data/README.md
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
<
|
|
2
|
-
<img src="./.github/img/cucumber-open-logo.png" alt="Cucumber Open - Supported by Smartbear" width="428" />
|
|
3
|
-
</p>
|
|
1
|
+
<img src="docs/img/cucumber-open-logo.png" alt="Cucumber Open - Supported by Smartbear" width="428" />
|
|
4
2
|
|
|
5
3
|
# Cucumber
|
|
6
4
|
|
|
@@ -18,9 +16,7 @@ written in plain language, they can be read by anyone on your team. Because they
|
|
|
18
16
|
read by anyone, you can use them to help improve communication, collaboration and trust on
|
|
19
17
|
your team.
|
|
20
18
|
|
|
21
|
-
<
|
|
22
|
-
<img src="./.github/img/gherkin-example.png" alt="Cucumber Gherkin Example" width="728" />
|
|
23
|
-
</p>
|
|
19
|
+
<img src="docs/img/gherkin-example.png" alt="Cucumber Gherkin Example" width="728" />
|
|
24
20
|
|
|
25
21
|
This is the Ruby implementation of Cucumber. Cucumber is also available for [JavaScript](https://github.com/cucumber/cucumber-js),
|
|
26
22
|
[Java](https://github.com/cucumber/cucumber-jvm), and a lot of other languages. You can find a list of implementations here: https://cucumber.io/docs/installation/.
|
|
@@ -56,8 +52,7 @@ Later in this document, bundler is considered being used so all commands are usi
|
|
|
56
52
|
- Ruby 3.0
|
|
57
53
|
- Ruby 2.7
|
|
58
54
|
- TruffleRuby 22.0.0+
|
|
59
|
-
- JRuby (with [some limitations](https://github.com/cucumber/cucumber-ruby/blob/main/docs/jruby-limitations.md))
|
|
60
|
-
- 9.4
|
|
55
|
+
- JRuby 9.4+ (with [some limitations](https://github.com/cucumber/cucumber-ruby/blob/main/docs/jruby-limitations.md))
|
|
61
56
|
|
|
62
57
|
### Ruby on Rails
|
|
63
58
|
|
|
@@ -109,19 +104,20 @@ And a file named `steps.rb` in `features/step_definitions` with:
|
|
|
109
104
|
```ruby
|
|
110
105
|
# features/step_definitions/steps.rb
|
|
111
106
|
|
|
112
|
-
Given(
|
|
107
|
+
Given('this will pass') do
|
|
113
108
|
@this_will_pass = true
|
|
114
109
|
end
|
|
115
110
|
|
|
116
|
-
Given(
|
|
111
|
+
Given('this will fail') do
|
|
117
112
|
@this_will_pass = false
|
|
118
113
|
end
|
|
119
114
|
|
|
120
|
-
When(
|
|
115
|
+
When('I do an action') do
|
|
116
|
+
:no_op
|
|
121
117
|
end
|
|
122
118
|
|
|
123
119
|
Then("some results should be there") do
|
|
124
|
-
expect(@this_will_pass)
|
|
120
|
+
expect(@this_will_pass).to be true
|
|
125
121
|
end
|
|
126
122
|
```
|
|
127
123
|
|
|
@@ -135,7 +131,7 @@ To execute a single feature file:
|
|
|
135
131
|
|
|
136
132
|
To execute a single example, indicates the line of the name of the example:
|
|
137
133
|
|
|
138
|
-
$ bundle exec cucumber features/rule.feature:
|
|
134
|
+
$ bundle exec cucumber features/rule.feature:5
|
|
139
135
|
|
|
140
136
|
To summarize the results on the standard output, and writte a HTML report on disk:
|
|
141
137
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
9.0.
|
|
1
|
+
9.0.2
|
data/lib/cucumber/cli/options.rb
CHANGED
|
@@ -50,13 +50,13 @@ module Cucumber
|
|
|
50
50
|
FORMAT_HELP = (BUILTIN_FORMATS.keys.sort.map do |key|
|
|
51
51
|
" #{key}#{' ' * (max - key.length)} : #{BUILTIN_FORMATS[key][1]}"
|
|
52
52
|
end) + FORMAT_HELP_MSG
|
|
53
|
-
PROFILE_SHORT_FLAG = '-p'
|
|
54
|
-
NO_PROFILE_SHORT_FLAG = '-P'
|
|
55
|
-
PROFILE_LONG_FLAG = '--profile'
|
|
56
|
-
NO_PROFILE_LONG_FLAG = '--no-profile'
|
|
57
|
-
FAIL_FAST_FLAG = '--fail-fast'
|
|
58
|
-
RETRY_FLAG = '--retry'
|
|
59
|
-
RETRY_TOTAL_FLAG = '--retry-total'
|
|
53
|
+
PROFILE_SHORT_FLAG = '-p'
|
|
54
|
+
NO_PROFILE_SHORT_FLAG = '-P'
|
|
55
|
+
PROFILE_LONG_FLAG = '--profile'
|
|
56
|
+
NO_PROFILE_LONG_FLAG = '--no-profile'
|
|
57
|
+
FAIL_FAST_FLAG = '--fail-fast'
|
|
58
|
+
RETRY_FLAG = '--retry'
|
|
59
|
+
RETRY_TOTAL_FLAG = '--retry-total'
|
|
60
60
|
OPTIONS_WITH_ARGS = [
|
|
61
61
|
'-r', '--require', '--i18n-keywords', '-f', '--format', '-o',
|
|
62
62
|
'--out', '-t', '--tags', '-n', '--name', '-e', '--exclude',
|
|
@@ -64,7 +64,7 @@ module Cucumber
|
|
|
64
64
|
'-l', '--lines', '--port', '-I', '--snippet-type'
|
|
65
65
|
].freeze
|
|
66
66
|
ORDER_TYPES = %w[defined random].freeze
|
|
67
|
-
TAG_LIMIT_MATCHER = /(?<tag_name>@\w+):(?<limit>\d+)/x
|
|
67
|
+
TAG_LIMIT_MATCHER = /(?<tag_name>@\w+):(?<limit>\d+)/x.freeze
|
|
68
68
|
|
|
69
69
|
def self.parse(args, out_stream, error_stream, options = {})
|
|
70
70
|
new(out_stream, error_stream, options).parse!(args)
|
data/lib/cucumber/deprecate.rb
CHANGED
|
@@ -42,7 +42,7 @@ module Cucumber
|
|
|
42
42
|
|
|
43
43
|
module ForDevelopers
|
|
44
44
|
def self.call(_message, _method, remove_after_version)
|
|
45
|
-
raise "This method is due for removal after version #{remove_after_version}" if Cucumber::VERSION
|
|
45
|
+
raise "This method is due for removal after version #{remove_after_version}" if remove_after_version <= Cucumber::VERSION
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
data/lib/cucumber/errors.rb
CHANGED
|
@@ -35,7 +35,8 @@ module Cucumber
|
|
|
35
35
|
# Raised when a step matches 2 or more StepDefinitions
|
|
36
36
|
class Ambiguous < StandardError
|
|
37
37
|
def initialize(step_name, step_definitions, used_guess)
|
|
38
|
-
|
|
38
|
+
# TODO: [LH] - Just use a heredoc here to fix this up
|
|
39
|
+
message = String.new
|
|
39
40
|
message << "Ambiguous match of \"#{step_name}\":\n\n"
|
|
40
41
|
message << step_definitions.map(&:backtrace_line).join("\n")
|
|
41
42
|
message << "\n\n"
|
data/lib/cucumber/file_specs.rb
CHANGED
|
@@ -5,7 +5,7 @@ require 'cucumber/core/test/location'
|
|
|
5
5
|
|
|
6
6
|
module Cucumber
|
|
7
7
|
class FileSpecs
|
|
8
|
-
FILE_COLON_LINE_PATTERN = /^([\w\W]*?)(?::([\d:]+))
|
|
8
|
+
FILE_COLON_LINE_PATTERN = /^([\w\W]*?)(?::([\d:]+))?$/.freeze # :nodoc:
|
|
9
9
|
|
|
10
10
|
def initialize(file_specs)
|
|
11
11
|
Cucumber.logger.debug("Features:\n")
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# rubocop:disable Metrics/ModuleLength
|
|
4
|
-
|
|
5
3
|
require 'cucumber/formatter/ansicolor'
|
|
6
4
|
require 'cucumber/formatter/duration'
|
|
7
5
|
require 'cucumber/gherkin/i18n'
|
|
@@ -48,7 +46,7 @@ module Cucumber
|
|
|
48
46
|
def format_string(o, status)
|
|
49
47
|
fmt = format_for(status)
|
|
50
48
|
o.to_s.split("\n").map do |line|
|
|
51
|
-
if
|
|
49
|
+
if fmt.instance_of?(Proc)
|
|
52
50
|
fmt.call(line)
|
|
53
51
|
else
|
|
54
52
|
fmt % line
|
|
@@ -108,7 +106,7 @@ module Cucumber
|
|
|
108
106
|
|
|
109
107
|
# http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/10655
|
|
110
108
|
def linebreaks(msg, max)
|
|
111
|
-
return msg unless max
|
|
109
|
+
return msg unless max.positive?
|
|
112
110
|
|
|
113
111
|
msg.gsub(/.{1,#{max}}(?:\s|\Z)/) do
|
|
114
112
|
(Regexp.last_match(0) + 5.chr).gsub(/\n\005/, "\n").gsub(/\005/, "\n")
|
|
@@ -262,4 +260,3 @@ module Cucumber
|
|
|
262
260
|
end
|
|
263
261
|
end
|
|
264
262
|
end
|
|
265
|
-
# rubocop:enable Metrics/ModuleLength
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'cucumber/formatter/console'
|
|
2
4
|
|
|
3
5
|
module Cucumber
|
|
@@ -30,7 +32,7 @@ module Cucumber
|
|
|
30
32
|
|
|
31
33
|
def status_counts(summary)
|
|
32
34
|
counts = Core::Test::Result::TYPES.map { |status| [status, summary.total(status)] }
|
|
33
|
-
counts = counts.select { |_status, count| count
|
|
35
|
+
counts = counts.select { |_status, count| count.positive? }
|
|
34
36
|
counts = counts.map { |status, count| format_string("#{count} #{status}", status) }
|
|
35
37
|
"(#{counts.join(', ')})" if counts.any?
|
|
36
38
|
end
|
|
@@ -15,7 +15,6 @@ module Cucumber
|
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
# rubocop:disable Metrics/MethodLength
|
|
19
18
|
def display_publish_ad(io)
|
|
20
19
|
display_banner(
|
|
21
20
|
[
|
|
@@ -59,7 +58,6 @@ module Cucumber
|
|
|
59
58
|
io
|
|
60
59
|
)
|
|
61
60
|
end
|
|
62
|
-
# rubocop:enable Metrics/MethodLength
|
|
63
61
|
|
|
64
62
|
def highlight(text)
|
|
65
63
|
[text, :cyan]
|
|
@@ -10,13 +10,13 @@ if Cucumber::WINDOWS
|
|
|
10
10
|
Cucumber::CODEPAGE = ENV['CUCUMBER_OUTPUT_ENCODING']
|
|
11
11
|
elsif `cmd /c chcp` =~ /(\d+)/
|
|
12
12
|
if [65_000, 65_001].include? Regexp.last_match(1).to_i
|
|
13
|
-
Cucumber::CODEPAGE = 'UTF-8'
|
|
13
|
+
Cucumber::CODEPAGE = 'UTF-8'
|
|
14
14
|
ENV['ANSICON_API'] = 'ruby'
|
|
15
15
|
else
|
|
16
|
-
Cucumber::CODEPAGE = "cp#{Regexp.last_match(1).to_i}"
|
|
16
|
+
Cucumber::CODEPAGE = "cp#{Regexp.last_match(1).to_i}"
|
|
17
17
|
end
|
|
18
18
|
else
|
|
19
|
-
Cucumber::CODEPAGE = 'cp1252'
|
|
19
|
+
Cucumber::CODEPAGE = 'cp1252'
|
|
20
20
|
$stderr.puts("WARNING: Couldn't detect your output codepage. Assuming it is 1252. You may have to chcp 1252 or SET CUCUMBER_OUTPUT_ENCODING=cp1252.")
|
|
21
21
|
end
|
|
22
22
|
|
|
@@ -67,11 +67,10 @@ module Cucumber
|
|
|
67
67
|
'tag' => 'cyan'
|
|
68
68
|
)
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
end
|
|
70
|
+
# Example: export GHERKIN_COLORS="passed=red:failed=yellow"
|
|
71
|
+
ENV.fetch('GHERKIN_COLORS', '').split(':').each do |pair|
|
|
72
|
+
rule, colour = pair.split('=')
|
|
73
|
+
ALIASES[colour] = rule
|
|
75
74
|
end
|
|
76
75
|
|
|
77
76
|
ALIASES.each_key do |key|
|
|
@@ -28,7 +28,7 @@ module Cucumber
|
|
|
28
28
|
if check_arity && !cucumber_compatible_arity?(args, block)
|
|
29
29
|
world.instance_exec do
|
|
30
30
|
ari = block.arity
|
|
31
|
-
ari = ari
|
|
31
|
+
ari = ari.negative? ? "#{ari.abs - 1}+" : ari
|
|
32
32
|
s1 = ari == 1 ? '' : 's'
|
|
33
33
|
s2 = args.length == 1 ? '' : 's'
|
|
34
34
|
raise ArityMismatchError, "Your block takes #{ari} argument#{s1}, but the Regexp matched #{args.length} argument#{s2}."
|
|
@@ -26,7 +26,7 @@ module Cucumber
|
|
|
26
26
|
# @example Passing a multiline string
|
|
27
27
|
# step "the email should contain:", "Dear sir,\nYou've won a prize!\n"
|
|
28
28
|
# @param [String] name The name of the step
|
|
29
|
-
# @param [String,Cucumber::Test::DocString,Cucumber::Ast::Table] multiline_argument
|
|
29
|
+
# @param [String, Cucumber::Test::DocString, Cucumber::Ast::Table] multiline_argument
|
|
30
30
|
def step(name, raw_multiline_arg = nil)
|
|
31
31
|
super
|
|
32
32
|
end
|
|
@@ -128,7 +128,7 @@ module Cucumber
|
|
|
128
128
|
|
|
129
129
|
# Dynamially generate the API module, closuring the dependencies
|
|
130
130
|
def self.for(runtime, language) # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
|
|
131
|
-
Module.new do
|
|
131
|
+
Module.new do
|
|
132
132
|
def self.extended(object)
|
|
133
133
|
# wrap the dynamically generated module so that we can document the methods
|
|
134
134
|
# for yardoc, which doesn't like define_method.
|
|
@@ -29,7 +29,8 @@ module Cucumber
|
|
|
29
29
|
# Raised if there are 2 or more World blocks.
|
|
30
30
|
class MultipleWorld < StandardError
|
|
31
31
|
def initialize(first_proc, second_proc)
|
|
32
|
-
|
|
32
|
+
# TODO: [LH] - Just use a heredoc here to fix this up
|
|
33
|
+
message = String.new
|
|
33
34
|
message << "You can only pass a proc to #World once, but it's happening\n"
|
|
34
35
|
message << "in 2 places:\n\n"
|
|
35
36
|
message << Glue.backtrace_line(first_proc, 'World') << "\n"
|
|
@@ -61,7 +61,8 @@ module Cucumber
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
def do_block
|
|
64
|
-
|
|
64
|
+
# TODO: [LH] - Just use a heredoc here to fix this up
|
|
65
|
+
do_block = String.new
|
|
65
66
|
do_block << "do#{parameters}\n"
|
|
66
67
|
multiline_argument.append_comment_to(do_block)
|
|
67
68
|
do_block << " pending # Write code here that turns the phrase above into concrete actions\n"
|
|
@@ -95,7 +96,8 @@ module Cucumber
|
|
|
95
96
|
"#{prefix}#{code_keyword}('#{expr.source}') do#{parameters(expr)}"
|
|
96
97
|
end.join("\n")
|
|
97
98
|
|
|
98
|
-
|
|
99
|
+
# TODO: [LH] - Just use a heredoc here to fix this up
|
|
100
|
+
body = String.new
|
|
99
101
|
multiline_argument.append_comment_to(body)
|
|
100
102
|
body << " pending # Write code here that turns the phrase above into concrete actions\n"
|
|
101
103
|
body << 'end'
|
|
@@ -506,7 +506,7 @@ module Cucumber
|
|
|
506
506
|
end
|
|
507
507
|
|
|
508
508
|
def ensure_table(table_or_array) # :nodoc:
|
|
509
|
-
return table_or_array if
|
|
509
|
+
return table_or_array if table_or_array.instance_of?(DataTable)
|
|
510
510
|
|
|
511
511
|
DataTable.from(table_or_array)
|
|
512
512
|
end
|
|
@@ -591,7 +591,7 @@ module Cucumber
|
|
|
591
591
|
end
|
|
592
592
|
|
|
593
593
|
def ==(other)
|
|
594
|
-
|
|
594
|
+
other.class == SurplusCell || value == other.value
|
|
595
595
|
end
|
|
596
596
|
|
|
597
597
|
def eql?(other)
|
data/lib/cucumber/platform.rb
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Detect the platform we're running on so we can tweak behaviour
|
|
4
|
-
# in various places.
|
|
3
|
+
# Detect the platform we're running on so we can tweak behaviour in various places.
|
|
5
4
|
require 'rbconfig'
|
|
6
5
|
require 'cucumber/core/platform'
|
|
7
6
|
|
|
8
7
|
module Cucumber
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
RAILS = defined?(Rails)
|
|
14
|
-
RUBY_BINARY = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])
|
|
15
|
-
RUBY = defined? RUBY_VERSION
|
|
8
|
+
VERSION = File.read(File.expand_path('../../VERSION', __dir__)).strip
|
|
9
|
+
BINARY = File.expand_path("#{File.dirname(__FILE__)}/../../bin/cucumber")
|
|
10
|
+
LIBDIR = File.expand_path("#{File.dirname(__FILE__)}/../../lib")
|
|
11
|
+
RUBY_BINARY = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])
|
|
16
12
|
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
class << self
|
|
14
|
+
attr_accessor :use_full_backtrace
|
|
19
15
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
end
|
|
16
|
+
# @private
|
|
17
|
+
def file_mode(mode, encoding = 'UTF-8')
|
|
18
|
+
"#{mode}:#{encoding}"
|
|
24
19
|
end
|
|
25
|
-
self.use_full_backtrace = false
|
|
26
20
|
end
|
|
21
|
+
self.use_full_backtrace = false
|
|
27
22
|
end
|
data/lib/cucumber/runtime.rb
CHANGED
|
@@ -112,7 +112,7 @@ module Cucumber
|
|
|
112
112
|
|
|
113
113
|
def failure?
|
|
114
114
|
if @configuration.wip?
|
|
115
|
-
summary_report.test_cases.total_passed
|
|
115
|
+
summary_report.test_cases.total_passed.positive?
|
|
116
116
|
else
|
|
117
117
|
!summary_report.ok?(@configuration.strict)
|
|
118
118
|
end
|
|
@@ -150,8 +150,8 @@ module Cucumber
|
|
|
150
150
|
end
|
|
151
151
|
|
|
152
152
|
class NormalisedEncodingFile
|
|
153
|
-
COMMENT_OR_EMPTY_LINE_PATTERN = /^\s*#|^\s
|
|
154
|
-
ENCODING_PATTERN = /^\s*#\s*encoding\s*:\s*([^\s]+)
|
|
153
|
+
COMMENT_OR_EMPTY_LINE_PATTERN = /^\s*#|^\s*$/.freeze # :nodoc:
|
|
154
|
+
ENCODING_PATTERN = /^\s*#\s*encoding\s*:\s*([^\s]+)/.freeze # :nodoc:
|
|
155
155
|
|
|
156
156
|
def self.read(path)
|
|
157
157
|
new(path).read
|
data/lib/cucumber/step_match.rb
CHANGED
data/lib/cucumber/term/banner.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.0.
|
|
4
|
+
version: 9.0.2
|
|
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: 2023-09-
|
|
13
|
+
date: 2023-09-11 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: builder
|
|
@@ -58,20 +58,20 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '11.
|
|
61
|
+
version: '11.1'
|
|
62
62
|
- - ">="
|
|
63
63
|
- !ruby/object:Gem::Version
|
|
64
|
-
version: 11.
|
|
64
|
+
version: 11.1.0
|
|
65
65
|
type: :runtime
|
|
66
66
|
prerelease: false
|
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
68
68
|
requirements:
|
|
69
69
|
- - "~>"
|
|
70
70
|
- !ruby/object:Gem::Version
|
|
71
|
-
version: '11.
|
|
71
|
+
version: '11.1'
|
|
72
72
|
- - ">="
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 11.
|
|
74
|
+
version: 11.1.0
|
|
75
75
|
- !ruby/object:Gem::Dependency
|
|
76
76
|
name: cucumber-cucumber-expressions
|
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -98,7 +98,7 @@ dependencies:
|
|
|
98
98
|
requirements:
|
|
99
99
|
- - ">="
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
|
-
version:
|
|
101
|
+
version: '24'
|
|
102
102
|
- - "<"
|
|
103
103
|
- !ruby/object:Gem::Version
|
|
104
104
|
version: 26.2.1
|
|
@@ -108,7 +108,7 @@ dependencies:
|
|
|
108
108
|
requirements:
|
|
109
109
|
- - ">="
|
|
110
110
|
- !ruby/object:Gem::Version
|
|
111
|
-
version:
|
|
111
|
+
version: '24'
|
|
112
112
|
- - "<"
|
|
113
113
|
- !ruby/object:Gem::Version
|
|
114
114
|
version: 26.2.1
|
|
@@ -138,7 +138,7 @@ dependencies:
|
|
|
138
138
|
requirements:
|
|
139
139
|
- - ">="
|
|
140
140
|
- !ruby/object:Gem::Version
|
|
141
|
-
version: '
|
|
141
|
+
version: '19'
|
|
142
142
|
- - "<"
|
|
143
143
|
- !ruby/object:Gem::Version
|
|
144
144
|
version: '23'
|
|
@@ -148,7 +148,7 @@ dependencies:
|
|
|
148
148
|
requirements:
|
|
149
149
|
- - ">="
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: '
|
|
151
|
+
version: '19'
|
|
152
152
|
- - "<"
|
|
153
153
|
- !ruby/object:Gem::Version
|
|
154
154
|
version: '23'
|
|
@@ -238,20 +238,14 @@ dependencies:
|
|
|
238
238
|
requirements:
|
|
239
239
|
- - "~>"
|
|
240
240
|
- !ruby/object:Gem::Version
|
|
241
|
-
version: '
|
|
242
|
-
- - ">="
|
|
243
|
-
- !ruby/object:Gem::Version
|
|
244
|
-
version: 9.2.1
|
|
241
|
+
version: '10.0'
|
|
245
242
|
type: :development
|
|
246
243
|
prerelease: false
|
|
247
244
|
version_requirements: !ruby/object:Gem::Requirement
|
|
248
245
|
requirements:
|
|
249
246
|
- - "~>"
|
|
250
247
|
- !ruby/object:Gem::Version
|
|
251
|
-
version: '
|
|
252
|
-
- - ">="
|
|
253
|
-
- !ruby/object:Gem::Version
|
|
254
|
-
version: 9.2.1
|
|
248
|
+
version: '10.0'
|
|
255
249
|
- !ruby/object:Gem::Dependency
|
|
256
250
|
name: nokogiri
|
|
257
251
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -336,21 +330,50 @@ dependencies:
|
|
|
336
330
|
name: rubocop
|
|
337
331
|
requirement: !ruby/object:Gem::Requirement
|
|
338
332
|
requirements:
|
|
339
|
-
- -
|
|
333
|
+
- - "~>"
|
|
334
|
+
- !ruby/object:Gem::Version
|
|
335
|
+
version: '1.56'
|
|
336
|
+
- - ">="
|
|
337
|
+
- !ruby/object:Gem::Version
|
|
338
|
+
version: 1.56.2
|
|
339
|
+
type: :development
|
|
340
|
+
prerelease: false
|
|
341
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
342
|
+
requirements:
|
|
343
|
+
- - "~>"
|
|
344
|
+
- !ruby/object:Gem::Version
|
|
345
|
+
version: '1.56'
|
|
346
|
+
- - ">="
|
|
347
|
+
- !ruby/object:Gem::Version
|
|
348
|
+
version: 1.56.2
|
|
349
|
+
- !ruby/object:Gem::Dependency
|
|
350
|
+
name: rubocop-capybara
|
|
351
|
+
requirement: !ruby/object:Gem::Requirement
|
|
352
|
+
requirements:
|
|
353
|
+
- - "~>"
|
|
354
|
+
- !ruby/object:Gem::Version
|
|
355
|
+
version: '2.18'
|
|
356
|
+
- - ">="
|
|
340
357
|
- !ruby/object:Gem::Version
|
|
341
|
-
version:
|
|
358
|
+
version: 2.18.0
|
|
342
359
|
type: :development
|
|
343
360
|
prerelease: false
|
|
344
361
|
version_requirements: !ruby/object:Gem::Requirement
|
|
345
362
|
requirements:
|
|
346
|
-
- -
|
|
363
|
+
- - "~>"
|
|
364
|
+
- !ruby/object:Gem::Version
|
|
365
|
+
version: '2.18'
|
|
366
|
+
- - ">="
|
|
347
367
|
- !ruby/object:Gem::Version
|
|
348
|
-
version:
|
|
368
|
+
version: 2.18.0
|
|
349
369
|
- !ruby/object:Gem::Dependency
|
|
350
370
|
name: rubocop-packaging
|
|
351
371
|
requirement: !ruby/object:Gem::Requirement
|
|
352
372
|
requirements:
|
|
353
373
|
- - "~>"
|
|
374
|
+
- !ruby/object:Gem::Version
|
|
375
|
+
version: '0.5'
|
|
376
|
+
- - ">="
|
|
354
377
|
- !ruby/object:Gem::Version
|
|
355
378
|
version: 0.5.2
|
|
356
379
|
type: :development
|
|
@@ -358,8 +381,51 @@ dependencies:
|
|
|
358
381
|
version_requirements: !ruby/object:Gem::Requirement
|
|
359
382
|
requirements:
|
|
360
383
|
- - "~>"
|
|
384
|
+
- !ruby/object:Gem::Version
|
|
385
|
+
version: '0.5'
|
|
386
|
+
- - ">="
|
|
361
387
|
- !ruby/object:Gem::Version
|
|
362
388
|
version: 0.5.2
|
|
389
|
+
- !ruby/object:Gem::Dependency
|
|
390
|
+
name: rubocop-rake
|
|
391
|
+
requirement: !ruby/object:Gem::Requirement
|
|
392
|
+
requirements:
|
|
393
|
+
- - "~>"
|
|
394
|
+
- !ruby/object:Gem::Version
|
|
395
|
+
version: '0.6'
|
|
396
|
+
- - ">="
|
|
397
|
+
- !ruby/object:Gem::Version
|
|
398
|
+
version: 0.6.0
|
|
399
|
+
type: :development
|
|
400
|
+
prerelease: false
|
|
401
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
402
|
+
requirements:
|
|
403
|
+
- - "~>"
|
|
404
|
+
- !ruby/object:Gem::Version
|
|
405
|
+
version: '0.6'
|
|
406
|
+
- - ">="
|
|
407
|
+
- !ruby/object:Gem::Version
|
|
408
|
+
version: 0.6.0
|
|
409
|
+
- !ruby/object:Gem::Dependency
|
|
410
|
+
name: rubocop-rspec
|
|
411
|
+
requirement: !ruby/object:Gem::Requirement
|
|
412
|
+
requirements:
|
|
413
|
+
- - "~>"
|
|
414
|
+
- !ruby/object:Gem::Version
|
|
415
|
+
version: '2.23'
|
|
416
|
+
- - ">="
|
|
417
|
+
- !ruby/object:Gem::Version
|
|
418
|
+
version: 2.23.2
|
|
419
|
+
type: :development
|
|
420
|
+
prerelease: false
|
|
421
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
422
|
+
requirements:
|
|
423
|
+
- - "~>"
|
|
424
|
+
- !ruby/object:Gem::Version
|
|
425
|
+
version: '2.23'
|
|
426
|
+
- - ">="
|
|
427
|
+
- !ruby/object:Gem::Version
|
|
428
|
+
version: 2.23.2
|
|
363
429
|
- !ruby/object:Gem::Dependency
|
|
364
430
|
name: simplecov
|
|
365
431
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -440,26 +506,6 @@ dependencies:
|
|
|
440
506
|
- - ">="
|
|
441
507
|
- !ruby/object:Gem::Version
|
|
442
508
|
version: 1.8.1
|
|
443
|
-
- !ruby/object:Gem::Dependency
|
|
444
|
-
name: octokit
|
|
445
|
-
requirement: !ruby/object:Gem::Requirement
|
|
446
|
-
requirements:
|
|
447
|
-
- - "~>"
|
|
448
|
-
- !ruby/object:Gem::Version
|
|
449
|
-
version: '6.0'
|
|
450
|
-
- - ">="
|
|
451
|
-
- !ruby/object:Gem::Version
|
|
452
|
-
version: 6.1.0
|
|
453
|
-
type: :development
|
|
454
|
-
prerelease: false
|
|
455
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
456
|
-
requirements:
|
|
457
|
-
- - "~>"
|
|
458
|
-
- !ruby/object:Gem::Version
|
|
459
|
-
version: '6.0'
|
|
460
|
-
- - ">="
|
|
461
|
-
- !ruby/object:Gem::Version
|
|
462
|
-
version: 6.1.0
|
|
463
509
|
- !ruby/object:Gem::Dependency
|
|
464
510
|
name: capybara
|
|
465
511
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -689,5 +735,5 @@ requirements: []
|
|
|
689
735
|
rubygems_version: 3.3.5
|
|
690
736
|
signing_key:
|
|
691
737
|
specification_version: 4
|
|
692
|
-
summary: cucumber-9.0.
|
|
738
|
+
summary: cucumber-9.0.2
|
|
693
739
|
test_files: []
|