diff --git a/allure-cucumber7-jvm/build.gradle.kts b/allure-cucumber7-jvm/build.gradle.kts index 2a1f44c98..55e1a88fc 100644 --- a/allure-cucumber7-jvm/build.gradle.kts +++ b/allure-cucumber7-jvm/build.gradle.kts @@ -1,7 +1,7 @@ description = "Allure CucumberJVM 7.0" -val cucumberVersion = "7.13.0" -val cucumberGherkinVersion = "26.2.0" +val cucumberVersion = "7.18.1" +val cucumberGherkinVersion = "28.0.0" dependencies { api(project(":allure-java-commons")) diff --git a/allure-grpc/build.gradle.kts b/allure-grpc/build.gradle.kts index 54ed3b5da..4bc8d3567 100644 --- a/allure-grpc/build.gradle.kts +++ b/allure-grpc/build.gradle.kts @@ -9,7 +9,7 @@ description = "Allure gRPC Integration" val agent: Configuration by configurations.creating val grpcVersion = "1.57.2" -val protobufVersion = "4.27.2" +val protobufVersion = "4.27.3" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-karate/src/main/java/io/qameta/allure/karate/AllureKarate.java b/allure-karate/src/main/java/io/qameta/allure/karate/AllureKarate.java index 2c629a9f2..6fa4e1cb8 100644 --- a/allure-karate/src/main/java/io/qameta/allure/karate/AllureKarate.java +++ b/allure-karate/src/main/java/io/qameta/allure/karate/AllureKarate.java @@ -173,6 +173,10 @@ public boolean beforeStep(final Step step, return true; } + if (step.getText().startsWith("call") || step.getText().startsWith("callonce")) { + return true; + } + final String uuid = parentUuid + "-" + step.getIndex(); final io.qameta.allure.model.StepResult stepResult = new io.qameta.allure.model.StepResult() .setName(step.getText()); @@ -191,6 +195,10 @@ public void afterStep(final StepResult result, } final Step step = result.getStep(); + if (step.getText().startsWith("call") || step.getText().startsWith("callonce")) { + return; + } + final String uuid = parentUuid + "-" + step.getIndex(); final Result stepResult = result.getResult(); diff --git a/allure-karate/src/test/java/io/qameta/allure/karate/AllureKarateTest.java b/allure-karate/src/test/java/io/qameta/allure/karate/AllureKarateTest.java index a1cf77b39..fedbd276f 100644 --- a/allure-karate/src/test/java/io/qameta/allure/karate/AllureKarateTest.java +++ b/allure-karate/src/test/java/io/qameta/allure/karate/AllureKarateTest.java @@ -322,6 +322,16 @@ void shouldCreateAttachments() { .isGreaterThan(Long.parseLong(firstAttachmentDateCreated)); } + @Test + void shouldSkipCallAndCallOnceStepsInBeforeStep() { + final AllureResults results = runApi("classpath:testdata/call-callonce.feature"); + + assertThat(results.getTestResults()) + .flatExtracting(TestResult::getSteps) + .extracting(StepResult::getName) + .doesNotContain("call", "callonce"); + } + @Test void buildTest() { Runner.builder() diff --git a/allure-karate/src/test/resources/testdata/call-callonce.feature b/allure-karate/src/test/resources/testdata/call-callonce.feature new file mode 100644 index 000000000..e64bbf049 --- /dev/null +++ b/allure-karate/src/test/resources/testdata/call-callonce.feature @@ -0,0 +1,13 @@ +Feature: Call & Call once Feature + This feature calls another feature and demonstrates Allure reporting issue. + + @smoke + Scenario: Main Scenario with a call + Given url 'https://jsonplaceholder.typicode.com' + When method GET + Then status 200 + + * call read('classpath:testdata/apiResponse.feature') + * callonce read('classpath:testdata/api.feature') + + Then print 'Main scenario completed.' diff --git a/gradle.properties b/gradle.properties index fdf2460f9..2fc004697 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=2.29.0 +version=2.29.1 org.gradle.daemon=true org.gradle.parallel=true