Skip to content

Commit c34040d

Browse files
author
Brad Wedell
committed
[ISSUE-cucumber#1044] Updates to support retry success status code 0
- Updated configuration to count the base number of cases being run - Updated failure? method to use cases.total_passed and total_cases to determine if the run was successful
1 parent a612a08 commit c34040d

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

lib/cucumber/configuration.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ def self.default
2727
# @method on_event
2828
def_instance_delegator :event_bus, :on, :on_event
2929

30+
attr_writer :total_cases
31+
3032
# @private
3133
def notify(message, *args)
3234
event_bus.send(message, *args)
@@ -68,6 +70,10 @@ def retry_attempts
6870
@options[:retry]
6971
end
7072

73+
def total_cases
74+
@total_cases ||= 0
75+
end
76+
7177
def guess?
7278
@options[:guess]
7379
end

lib/cucumber/filters/retry.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module Filters
88
class Retry < Core::Filter.new(:configuration)
99

1010
def test_case(test_case)
11+
configuration.total_cases += 1
1112
configuration.on_event(:test_case_finished) do |event|
1213
next unless retry_required?(test_case, event)
1314

lib/cucumber/runtime.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ def legacy_formatter?(factory)
222222
def failure?
223223
if @configuration.wip?
224224
summary_report.test_cases.total_passed > 0
225+
elsif @configuration.retry_attempts > 0
226+
summary_report.test_cases.total_passed != @configuration.total_cases
225227
else
226228
summary_report.test_cases.total_failed > 0 || summary_report.test_steps.total_failed > 0 ||
227229
(@configuration.strict? && (summary_report.test_steps.total_undefined > 0 || summary_report.test_steps.total_pending > 0))
@@ -241,6 +243,7 @@ def filters
241243
filters << Cucumber::Core::Test::LocationsFilter.new(filespecs.locations)
242244
filters << Filters::Randomizer.new(@configuration.seed) if @configuration.randomize?
243245
filters << Filters::Quit.new
246+
244247
filters << Filters::Retry.new(@configuration)
245248
# TODO: can we just use RbLanguages's step definitions directly?
246249
step_match_search = StepMatchSearch.new(@support_code.ruby.method(:step_matches), @configuration)

0 commit comments

Comments
 (0)