diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f3d079ad..1f32c2332 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,11 @@ This document is formatted according to the principles of [Keep A CHANGELOG](htt Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) for more info on how to contribute to Cucumber. ## [Unreleased] +### Changed +- Updated `cucumber-compatibility-kit` to v19 + +### Fixed +- Fixed an issue where the html-formatter wasn't respecting the new structure for `StackTrace` cucumber messages ([#1790](https://github.com/cucumber/cucumber-ruby/pull/1790) [luke-hill](https://github.com/luke-hill)) ## [10.0.0] - 2025-06-11 ### Changed diff --git a/compatibility/features/attachments/attachments_steps.rb b/compatibility/features/attachments/attachments_steps.rb index b7a8025ed..b839bbaf0 100644 --- a/compatibility/features/attachments/attachments_steps.rb +++ b/compatibility/features/attachments/attachments_steps.rb @@ -25,16 +25,6 @@ def cck_asset_path attach(data, media_type) end -# To be removed in CCK v19 alongside removing duplicate scenarios: https://github.com/cucumber/compatibility-kit/pull/127 -When('a JPEG image is attached') do - attach(File.open("#{cck_asset_path}/cucumber.jpeg"), 'image/jpeg') -end - -# To be removed in CCK v19 alongside removing duplicate scenarios: https://github.com/cucumber/compatibility-kit/pull/127 -When('a PNG image is attached') do - attach(File.open("#{cck_asset_path}/cucumber.png"), 'image/png') -end - When('a PDF document is attached and renamed') do attach(File.open("#{cck_asset_path}/document.pdf"), 'application/pdf', 'renamed.pdf') end diff --git a/cucumber.gemspec b/cucumber.gemspec index c9ead737f..6059f7370 100644 --- a/cucumber.gemspec +++ b/cucumber.gemspec @@ -35,7 +35,7 @@ Gem::Specification.new do |s| s.add_dependency 'multi_test', '~> 1.1' s.add_dependency 'sys-uname', '~> 1.3' - s.add_development_dependency 'cucumber-compatibility-kit', '~> 18.0' + s.add_development_dependency 'cucumber-compatibility-kit', '~> 19.0' # Only needed whilst we are testing the formatters. Can be removed once we remove tests for those s.add_development_dependency 'nokogiri', '~> 1.15' s.add_development_dependency 'rake', '~> 13.2' diff --git a/lib/cucumber/formatter/message_builder.rb b/lib/cucumber/formatter/message_builder.rb index 42caa087f..088eea2f9 100644 --- a/lib/cucumber/formatter/message_builder.rb +++ b/lib/cucumber/formatter/message_builder.rb @@ -198,9 +198,7 @@ def on_test_step_started(event) def on_test_step_finished(event) test_case = @test_case_by_step_id[event.test_step.id] - result = event - .result - .with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter) + result = event.result.with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter) result_message = result.to_message if result.failed? || result.pending? @@ -227,14 +225,20 @@ def on_test_step_finished(event) end def create_error_message(message_element) - message = "#{message_element.message} (#{message_element.class})" - ([message] + message_element.backtrace).join("\n") + <<~ERROR_MESSAGE + #{message_element.message} (#{message_element.class}) + #{message_element.backtrace} + ERROR_MESSAGE end def create_exception_object(result, message_element) return unless result.failed? - Cucumber::Messages::Exception.from_h({ type: message_element.class, message: message_element.message }) + Cucumber::Messages::Exception.new( + type: message_element.class, + message: message_element.message, + stack_trace: message_element.backtrace.join("\n") + ) end def on_test_case_finished(event)