diff --git a/lib/datadog/ci/contrib/cucumber/formatter.rb b/lib/datadog/ci/contrib/cucumber/formatter.rb index 6cb67cab..9af75fb4 100644 --- a/lib/datadog/ci/contrib/cucumber/formatter.rb +++ b/lib/datadog/ci/contrib/cucumber/formatter.rb @@ -17,7 +17,7 @@ def initialize(config) @failed_tests_count = 0 @current_test_suite = nil - @failed_tests_per_test_suite = Hash.new(0) + @failed_tests_in_current_test_suite = 0 bind_events(config) end @@ -76,11 +76,10 @@ def on_test_case_finished(event) # TestRunFinished event does not have a success attribute before 8.0. # # To track whether test suite failed or passed we need to - # track the number of failed tests per test suite. + # track the number of failed tests in the current test suite. if event.result.failed? @failed_tests_count += 1 - test_suite = @current_test_suite - @failed_tests_per_test_suite[test_suite.name] += 1 if test_suite + @failed_tests_in_current_test_suite += 1 end finish_test(test_span, event.result) @@ -140,11 +139,12 @@ def finish_current_test_suite test_suite = @current_test_suite return unless test_suite - if @failed_tests_per_test_suite[test_suite.name].zero? + if @failed_tests_in_current_test_suite.zero? test_suite.passed! else test_suite.failed! end + @failed_tests_in_current_test_suite = 0 test_suite.finish end diff --git a/sig/datadog/ci/contrib/cucumber/formatter.rbs b/sig/datadog/ci/contrib/cucumber/formatter.rbs index ef1f133a..9f2c1d5c 100644 --- a/sig/datadog/ci/contrib/cucumber/formatter.rbs +++ b/sig/datadog/ci/contrib/cucumber/formatter.rbs @@ -6,7 +6,7 @@ module Datadog private @failed_tests_count: Integer @current_test_suite: Datadog::CI::Span? - @failed_tests_per_test_suite: Hash[String, Integer] + @failed_tests_in_current_test_suite: Integer attr_reader config: untyped