From a66084d28f23463376da72ad5ba9ea5e1c939ec7 Mon Sep 17 00:00:00 2001 From: Karois Date: Wed, 19 Feb 2025 20:48:10 +0200 Subject: [PATCH] Show skipped test reason in report Signed-off-by: Karois --- .../allure_cucumber/models/cucumber_model.rb | 2 +- allure-cucumber/spec/cucumber_helper.rb | 4 +++ .../unit/formatter_test_case_stopped_spec.rb | 25 +++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/allure-cucumber/lib/allure_cucumber/models/cucumber_model.rb b/allure-cucumber/lib/allure_cucumber/models/cucumber_model.rb index 091a6af0..6573c3f8 100644 --- a/allure-cucumber/lib/allure_cucumber/models/cucumber_model.rb +++ b/allure-cucumber/lib/allure_cucumber/models/cucumber_model.rb @@ -60,7 +60,7 @@ def fixture_result(hook_step) # @return [Hash] def failure_details(result) return { message: result.exception.message, trace: result.exception.backtrace.join("\n") } if result.failed? - return { message: result.message, trace: result.backtrace.join("\n") } if result.undefined? + return { message: result.message, trace: result.backtrace.join("\n") } if result.undefined? || result.skipped? {} end diff --git a/allure-cucumber/spec/cucumber_helper.rb b/allure-cucumber/spec/cucumber_helper.rb index 6ebd3e1e..181d1e9e 100644 --- a/allure-cucumber/spec/cucumber_helper.rb +++ b/allure-cucumber/spec/cucumber_helper.rb @@ -26,6 +26,10 @@ class CucumberHelper AfterStep("@after_step") do end + + Before("@skipped") do + skip_this_scenario("because reasons") + end RUBY STEPS = <<~RUBY diff --git a/allure-cucumber/spec/unit/formatter_test_case_stopped_spec.rb b/allure-cucumber/spec/unit/formatter_test_case_stopped_spec.rb index e2ebd545..e8bb9740 100644 --- a/allure-cucumber/spec/unit/formatter_test_case_stopped_spec.rb +++ b/allure-cucumber/spec/unit/formatter_test_case_stopped_spec.rb @@ -86,4 +86,29 @@ end end end + + it "correctly updates skipped test case" do + run_cucumber_cli(<<~FEATURE) + Feature: Simple feature + + @skipped + Scenario: Add a to b + Simple scenario description + Given a is 5 + And b is 10 + When I add a to b + Then step fails with simple exception + And this step shoud be skipped + FEATURE + + expect(lifecycle).to have_received(:update_test_case).with(no_args) do |&arg| + arg.call(@test_case) + aggregate_failures "Should update correct test case parameters" do + expect(@test_case.stage).to eq(Allure::Stage::FINISHED) + expect(@test_case.status).to eq(Allure::Status::SKIPPED) + expect(@test_case.status_details.message).to eq("because reasons") + expect(@test_case.status_details.trace).not_to be_empty + end + end + end end