Skip to content

Commit a4598d9

Browse files
authored
Update version support of all cucumber gems (#1751)
* Update version support of all cucumber gems * Fix up failing tests Don't assume a parent location for default tests For top level tests, there is no parent * Strict flag when determining console issues is now a keyword argument * Fix extra rogue space * For the fail fast formatter we need to pass in the strict configuration differently * There are 3 places in the legacy jUnit formatter where we need to pass the strict configuration in a different way * The pretty formatter has 1 place to update strict configuration handling * The re-run formatter has 3 instances of situations needing to be fixed up to use correct strict handling * Refactor to proto world spec * Enforce minimum of 13.0.1 of core to ensure fix for strict is used * Fix a missing situation for the cucumber runtime not passing in strict as a kwarg
1 parent 1eefe5d commit a4598d9

File tree

10 files changed

+26
-26
lines changed

10 files changed

+26
-26
lines changed

cucumber.gemspec

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ Gem::Specification.new do |s|
2222
s.required_ruby_version = '>= 2.7'
2323
s.required_rubygems_version = '>= 3.0.1'
2424

25-
s.add_dependency 'builder', '~> 3.2', '>= 3.2.4'
26-
s.add_dependency 'cucumber-ci-environment', '~> 9.2', '>= 9.2.0'
27-
s.add_dependency 'cucumber-core', '~> 12.0'
25+
s.add_dependency 'builder', '~> 3.2'
26+
s.add_dependency 'cucumber-ci-environment', '> 9', '< 11'
27+
s.add_dependency 'cucumber-core', '> 13', '< 14'
2828
s.add_dependency 'cucumber-cucumber-expressions', '~> 17.0'
29-
s.add_dependency 'cucumber-gherkin', '> 24', '< 27'
29+
s.add_dependency 'cucumber-gherkin', '> 24', '< 28'
3030
s.add_dependency 'cucumber-html-formatter', '> 20.3', '< 22'
3131
s.add_dependency 'cucumber-messages', '> 19', '< 25'
3232
s.add_dependency 'diff-lcs', '~> 1.5'
33-
s.add_dependency 'mini_mime', '~> 1.1', '>= 1.1.5'
34-
s.add_dependency 'multi_test', '~> 1.1', '>= 1.1.0'
35-
s.add_dependency 'sys-uname', '~> 1.2', '>= 1.2.3'
33+
s.add_dependency 'mini_mime', '~> 1.1'
34+
s.add_dependency 'multi_test', '~> 1.1'
35+
s.add_dependency 'sys-uname', '~> 1.2'
3636

3737
s.add_development_dependency 'cucumber-compatibility-kit', '~> 15.0'
3838
# Only needed whilst we are testing the formatters. Can be removed once we remove tests for those

lib/cucumber/formatter/console_issues.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ def initialize(config, ast_lookup = AstLookup.new(config))
1414
@config.on_event(:test_case_finished) do |event|
1515
if event.test_case != @previous_test_case
1616
@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)
1818
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))
2020
@issues[:failed].delete(event.test_case)
2121
end
2222
end

lib/cucumber/formatter/fail_fast.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def initialize(configuration)
1212
test_case, result = *event.attributes
1313
if test_case != @previous_test_case
1414
@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)
1616
elsif result.passed?
1717
Cucumber.wants_to_quit = false
1818
end

lib/cucumber/formatter/junit.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def on_test_step_finished(event)
5454
test_step, result = *event.attributes
5555
return if @failing_test_step
5656

57-
@failing_test_step = test_step unless result.ok?(@config.strict)
57+
@failing_test_step = test_step unless result.ok?(strict: @config.strict)
5858
end
5959

6060
def on_test_case_finished(event)
@@ -111,7 +111,7 @@ def create_output_string(test_case, scenario, result, row_name)
111111
scenario_source = @ast_lookup.scenario_source(test_case)
112112
keyword = scenario_source.type == :Scenario ? scenario_source.scenario.keyword : scenario_source.scenario_outline.keyword
113113
output = "#{keyword}: #{scenario}\n\n"
114-
return output if result.ok?(@config.strict)
114+
return output if result.ok?(strict: @config.strict)
115115

116116
if scenario_source.type == :Scenario
117117
if @failing_test_step
@@ -140,7 +140,7 @@ def build_testcase(result, scenario_designation, output)
140140
testcase_attributes = get_testcase_attributes(classname, name, duration, filename)
141141

142142
@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)
144144
@current_feature_data[:builder].skipped
145145
@current_feature_data[:skipped] += 1
146146
elsif !result.passed?

lib/cucumber/formatter/pretty.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ def attach(src, media_type, filename)
153153
private
154154

155155
def find_exception_to_be_printed(result)
156-
return nil if result.ok?(options[:strict])
156+
return nil if result.ok?(strict: options[:strict])
157157

158158
result = result.with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter)
159159
exception = result.failed? ? result.exception : result

lib/cucumber/formatter/rerun.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@ def initialize(config)
1414
config.on_event :test_case_finished do |event|
1515
test_case, result = *event.attributes
1616
if @config.strict.strict?(:flaky)
17-
next if result.ok?(@config.strict)
17+
next if result.ok?(strict: @config.strict)
1818

1919
add_to_failures(test_case)
2020
else
2121
unless @latest_failed_test_case.nil?
2222
if @latest_failed_test_case != test_case
2323
add_to_failures(@latest_failed_test_case)
2424
@latest_failed_test_case = nil
25-
elsif result.ok?(@config.strict)
25+
elsif result.ok?(strict: @config.strict)
2626
@latest_failed_test_case = nil
2727
end
2828
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)
3030
end
3131
end
3232
config.on_event :test_run_finished do

lib/cucumber/runtime.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def failure?
114114
if @configuration.wip?
115115
summary_report.test_cases.total_passed.positive?
116116
else
117-
!summary_report.ok?(@configuration.strict)
117+
!summary_report.ok?(strict: @configuration.strict)
118118
end
119119
end
120120

spec/cucumber/filters/retry_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
let(:configuration) { Cucumber::Configuration.new(retry: 2, retry_total: retry_total) }
1717
let(:retry_total) { Float::INFINITY }
18-
let(:test_case) { Cucumber::Core::Test::Case.new(double, double, [double('test steps')], double, [], double) }
18+
let(:test_case) { Cucumber::Core::Test::Case.new(double, double, [double('test steps')], double, double, [], double) }
1919
let(:receiver) { double('receiver').as_null_object }
2020
let(:filter) { described_class.new(configuration, receiver) }
2121
let(:fail) { Cucumber::Events::AfterTestCase.new(test_case, double('result', failed?: true, ok?: false)) }
@@ -106,10 +106,10 @@
106106
context 'with too many failing tests' do
107107
let(:retry_total) { 1 }
108108
let(:always_failing_test_case1) do
109-
Cucumber::Core::Test::Case.new(double, double, [double('test steps')], 'test.rb:1', [], double)
109+
Cucumber::Core::Test::Case.new(double, double, [double('test steps')], 'test.rb:1', nil, [], double)
110110
end
111111
let(:always_failing_test_case2) do
112-
Cucumber::Core::Test::Case.new(double, double, [double('test steps')], 'test.rb:9', [], double)
112+
Cucumber::Core::Test::Case.new(double, double, [double('test steps')], 'test.rb:9', nil, [], double)
113113
end
114114

115115
it 'stops retrying tests' do

spec/cucumber/formatter/pretty_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ module Formatter
342342
Given('this step passes') {}
343343
end
344344

345-
it 'displays hook output appropriately ' do
345+
it 'displays hook output appropriately' do
346346
expect(@out.string).to include <<~OUTPUT
347347
Feature:
348348

spec/cucumber/glue/proto_world_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,15 +132,15 @@ module Glue
132132
extend Cucumber::Formatter::SpecHelperDsl
133133
include Cucumber::Formatter::SpecHelper
134134

135-
before(:each) do
135+
before do
136136
Cucumber::Term::ANSIColor.coloring = false
137137
@out = StringIO.new
138138
@formatter = Cucumber::Formatter::Pretty.new(actual_runtime.configuration.with_options(out_stream: @out, source: false))
139139
run_defined_feature
140140
end
141141

142142
describe 'when attaching data with null byte' do
143-
define_feature <<-FEATURE
143+
define_feature <<~FEATURE
144144
Feature: Banana party
145145
146146
Scenario: Monkey eats banana
@@ -154,11 +154,11 @@ module Glue
154154
end
155155

156156
it 'does not report an error' do
157-
expect(@out.string).not_to include 'Error'
157+
expect(@out.string).not_to include('Error')
158158
end
159159

160160
it 'properly attaches the data' do
161-
expect(@out.string).to include "'\x00'attachement"
161+
expect(@out.string).to include("'\x00'attachement")
162162
end
163163
end
164164
end

0 commit comments

Comments
 (0)