From 43a89b54aae73eab1e2852225a1a9c3329084542 Mon Sep 17 00:00:00 2001 From: Dmitry Baev Date: Thu, 17 Dec 2020 13:13:50 +0300 Subject: [PATCH 01/42] add idea metadata (via #486) --- .gitignore | 6 ++++-- .idea/icon.png | Bin 0 -> 8689 bytes .idea/vcs.xml | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 .idea/icon.png create mode 100644 .idea/vcs.xml diff --git a/.gitignore b/.gitignore index fe90411d6..b85107a90 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,9 @@ out .gradletasknamecache #IDEA Files -.idea +.idea/* +!.idea/vcs.xml +!.idea/icon.png *.iml *.ipr @@ -21,4 +23,4 @@ out .DS_Store #Netbeans files -/.nb-gradle/ \ No newline at end of file +/.nb-gradle/ diff --git a/.idea/icon.png b/.idea/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..621c0930b2d6455a9e6822a898d5d586c2accb90 GIT binary patch literal 8689 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 P00000NkvXXu0mjf-tvaF literal 0 HcmV?d00001 diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..aeaa9e459 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,16 @@ + + + + + + + + + From db150fc54e145bcd8e010e13de7f85e8f5038b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fulcan=20Arabac=C4=B1?= Date: Mon, 18 Jan 2021 15:37:20 +0300 Subject: [PATCH 02/42] add possibility to configure attachments names for rest assured integration (fixes #492, via #491) --- .../allure/restassured/AllureRestAssured.java | 22 ++++-- .../restassured/AllureRestAssuredTest.java | 70 ++++++++++++------- 2 files changed, 62 insertions(+), 30 deletions(-) diff --git a/allure-rest-assured/src/main/java/io/qameta/allure/restassured/AllureRestAssured.java b/allure-rest-assured/src/main/java/io/qameta/allure/restassured/AllureRestAssured.java index 717b64ecd..c08d960ba 100644 --- a/allure-rest-assured/src/main/java/io/qameta/allure/restassured/AllureRestAssured.java +++ b/allure-rest-assured/src/main/java/io/qameta/allure/restassured/AllureRestAssured.java @@ -41,6 +41,8 @@ public class AllureRestAssured implements OrderedFilter { private String requestTemplatePath = "http-request.ftl"; private String responseTemplatePath = "http-response.ftl"; + private String requestAttachmentName = "Request"; + private String responseAttachmentName; public AllureRestAssured setRequestTemplate(final String templatePath) { this.requestTemplatePath = templatePath; @@ -52,6 +54,16 @@ public AllureRestAssured setResponseTemplate(final String templatePath) { return this; } + public AllureRestAssured setRequestAttachmentName(final String requestAttachmentName) { + this.requestAttachmentName = requestAttachmentName; + return this; + } + + public AllureRestAssured setResponseAttachmentName(final String responseAttachmentName) { + this.responseAttachmentName = responseAttachmentName; + return this; + } + /** * @deprecated use {@link #setRequestTemplate(String)} instead. * Scheduled for removal in 3.0 release. @@ -75,9 +87,8 @@ public Response filter(final FilterableRequestSpecification requestSpec, final FilterableResponseSpecification responseSpec, final FilterContext filterContext) { final Prettifier prettifier = new Prettifier(); - - - final HttpRequestAttachment.Builder requestAttachmentBuilder = create("Request", requestSpec.getURI()) + final String url = requestSpec.getURI(); + final HttpRequestAttachment.Builder requestAttachmentBuilder = create(requestAttachmentName, url) .setMethod(requestSpec.getMethod()) .setHeaders(toMapConverter(requestSpec.getHeaders())) .setCookies(toMapConverter(requestSpec.getCookies())); @@ -94,7 +105,10 @@ public Response filter(final FilterableRequestSpecification requestSpec, ); final Response response = filterContext.next(requestSpec, responseSpec); - final HttpResponseAttachment responseAttachment = create(response.getStatusLine()) + if (Objects.isNull(responseAttachmentName)) { + responseAttachmentName = response.getStatusLine(); + } + final HttpResponseAttachment responseAttachment = create(responseAttachmentName) .setResponseCode(response.getStatusCode()) .setHeaders(toMapConverter(response.getHeaders())) .setBody(prettifier.getPrettifiedBodyIfPossible(response, response.getBody())) diff --git a/allure-rest-assured/src/test/java/io/qameta/allure/restassured/AllureRestAssuredTest.java b/allure-rest-assured/src/test/java/io/qameta/allure/restassured/AllureRestAssuredTest.java index ff7e38cf4..e92d5d866 100644 --- a/allure-rest-assured/src/test/java/io/qameta/allure/restassured/AllureRestAssuredTest.java +++ b/allure-rest-assured/src/test/java/io/qameta/allure/restassured/AllureRestAssuredTest.java @@ -23,15 +23,30 @@ import io.qameta.allure.model.TestResult; import io.qameta.allure.test.AllureResults; import io.restassured.RestAssured; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.MethodSource; - -import java.util.Collection; -import java.util.Objects; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.ArgumentsProvider; +import org.junit.jupiter.params.provider.ArgumentsSource; +import java.util.*; +import java.util.stream.Collectors; import java.util.stream.Stream; - import static io.qameta.allure.test.RunUtils.runWithinTestContext; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.params.provider.Arguments.arguments; + +class AttachmentArgumentProvider implements ArgumentsProvider { + @Override + public Stream provideArguments(ExtensionContext context) { + + return Stream.of( + arguments(ImmutableList.of("Request", "HTTP/1.1 200 OK"), new AllureRestAssured()), + arguments(ImmutableList.of("Allure Request", "Allure Response"), new AllureRestAssured().setRequestAttachmentName("Allure Request").setResponseAttachmentName("Allure Response")), + arguments(ImmutableList.of("Request", "Allure Response"), new AllureRestAssured().setResponseAttachmentName("Allure Response")), + arguments(ImmutableList.of("Allure Request", "HTTP/1.1 200 OK"), new AllureRestAssured().setRequestAttachmentName("Allure Request")) + ); + } +} /** * @author charlie (Dmitry Baev). @@ -39,39 +54,43 @@ @SuppressWarnings("unchecked") class AllureRestAssuredTest { - static Stream attachmentNameProvider() { - return Stream.of("Request", "HTTP/1.1 200 OK"); - } - @ParameterizedTest - @MethodSource(value = "attachmentNameProvider") - void shouldCreateAttachment(final String attachmentName) { + @ArgumentsSource(AttachmentArgumentProvider.class) + void shouldCreateAttachment(final List attachmentNames, final AllureRestAssured filter) { + RestAssured.replaceFiltersWith(filter); final AllureResults results = execute(); - assertThat(results.getTestResults()) - .flatExtracting(TestResult::getAttachments) - .flatExtracting(Attachment::getName) - .contains(attachmentName); + assertThat(results.getTestResults() + .stream() + .map(TestResult::getAttachments) + .flatMap(Collection::stream) + .map(Attachment::getName)) + .isEqualTo(attachmentNames); } @ParameterizedTest - @MethodSource(value = "attachmentNameProvider") - void shouldCatchAttachmentBody(final String attachmentName) { + @ArgumentsSource(AttachmentArgumentProvider.class) + void shouldCatchAttachmentBody(final List attachmentNames, final AllureRestAssured filter) { + RestAssured.replaceFiltersWith(filter); final AllureResults results = execute(); - final Attachment found = results.getTestResults().stream() + List actualAttachments = results.getTestResults().stream() .map(TestResult::getAttachments) - .flatMap(Collection::stream) - .filter(attachment -> Objects.equals(attachmentName, attachment.getName())) - .findAny() - .orElseThrow(() -> new RuntimeException("attachment not found")); + .flatMap(List::stream) + .collect(Collectors.toList()); - assertThat(results.getAttachments()) - .containsKeys(found.getSource()); + assertThat(actualAttachments) + .flatExtracting(Attachment::getName) + .isEqualTo(attachmentNames) + .doesNotContainNull(); + + assertThat(actualAttachments) + .flatExtracting(Attachment::getSource) + .containsExactlyInAnyOrderElementsOf(new ArrayList<>(results.getAttachments().keySet())) + .doesNotContainNull(); } protected final AllureResults execute() { - RestAssured.replaceFiltersWith(new AllureRestAssured()); final WireMockServer server = new WireMockServer(WireMockConfiguration.options().dynamicPort()); return runWithinTestContext(() -> { @@ -87,5 +106,4 @@ protected final AllureResults execute() { } }); } - } From 54db835d1a309862dd25492c7ce448ea1abc1e91 Mon Sep 17 00:00:00 2001 From: Artem Eroshenko Date: Mon, 15 Feb 2021 14:04:01 +0300 Subject: [PATCH 03/42] fix face test case creation in Allure TestOps (via #509) --- .../allure/junitplatform/AllureJunitPlatform.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java b/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java index 74b5def2c..60dc36185 100644 --- a/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java +++ b/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java @@ -64,6 +64,7 @@ import static io.qameta.allure.model.Status.FAILED; import static io.qameta.allure.model.Status.PASSED; import static io.qameta.allure.model.Status.SKIPPED; +import static io.qameta.allure.util.ResultsUtils.ALLURE_ID_LABEL_NAME; import static io.qameta.allure.util.ResultsUtils.createFrameworkLabel; import static io.qameta.allure.util.ResultsUtils.createHostLabel; import static io.qameta.allure.util.ResultsUtils.createLanguageLabel; @@ -79,7 +80,13 @@ /** * @author ehborisov */ -@SuppressWarnings({"deprecation", "ClassFanOutComplexity", "MultipleStringLiterals", "PMD.GodClass"}) +@SuppressWarnings({ + "deprecation", + "ClassFanOutComplexity", + "MultipleStringLiterals", + "ClassDataAbstractionCoupling", + "PMD.GodClass" +}) public class AllureJunitPlatform implements TestExecutionListener { private static final Logger LOGGER = LoggerFactory.getLogger(AllureJunitPlatform.class); @@ -419,6 +426,9 @@ private void stopTestCase(final TestIdentifier testIdentifier, } final String uuid = maybeUuid.get(); getLifecycle().updateTestCase(uuid, result -> { + if (!testIdentifier.isTest()) { + result.getLabels().add(new Label().setName(ALLURE_ID_LABEL_NAME).setValue("-1")); + } result.setStage(Stage.FINISHED); result.setStatus(status); result.setStatusDetails(statusDetails); From 6b9cad28cdf14d52eae419c8cad3f712b41b729d Mon Sep 17 00:00:00 2001 From: Dmitry Baev Date: Wed, 17 Mar 2021 14:11:41 +0300 Subject: [PATCH 04/42] improve build workflow (via #511) --- .github/dependabot.yml | 15 ++++++ .github/labeler.yml | 82 +++++++++++++++++++++++++++++ .github/release-drafter.yml | 7 ++- .github/workflows/build.yaml | 1 + .github/workflows/labeler.yml | 12 +++++ .github/workflows/labels-verify.yml | 2 +- 6 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/labeler.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..240d09840 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + labels: + - "type:dependencies" + + - package-ecosystem: "gradle" + directory: "/" + schedule: + interval: "daily" + labels: + - "type:dependencies" diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 000000000..6c0d01bed --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,82 @@ +theme:workflow: + - ".github/**" + +theme:build: + - "gradle/**" + - "build.gradle.kts" + - "**/build.gradle.kts" + - "gradle.properties" + - ".gitignore" + +theme:assertj: + - "allure-assertj/**" + +theme:attachments: + - "allure-attachments/**" + +theme:citrus: + - "allure-citrus/**" + +theme:cucumber-jvm: + - "allure-cucumber*-jvm/**" + +theme:descriptions-javadoc: + - "allure-descriptions-javadoc/**" + +theme:httpclient: + - "allure-httpclient/**" + +theme:model: + - "allure-model/**" + +theme:core: + - "allure-java-commons/**" + - "allure-java-commons-test/**" + - "allure-test-filter/**" + +theme:jax-rs: + - "allure-jax-rs/**" + +theme:jbehave: + - "allure-jbehave/**" + +theme:jsonunit: + - "allure-jsonunit/**" + +theme:junit4: + - "allure-junit4/**" + - "allure-junit4-aspect/**" + +theme:junit-platform: + - "allure-junit5/**" + - "allure-junit5-assert/**" + - "allure-junit-platform/**" + +theme:karate: + - "allure-karate/**" + +theme:okhttp: + - "allure-okhttp/**" + - "allure-okhttp3/**" + +theme:rest-assured: + - "allure-rest-assured/**" + +theme:scalatest: + - "allure-scalatest/**" + +theme:selenide: + - "allure-selenide/**" + +theme:servlet-api: + - "allure-servlet-api/**" + +theme:spock: + - "allure-spock/**" + +theme:spring: + - "allure-spring-web/**" + +theme:testng: + - "allure-testng/**" + diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index a2939dd11..890e47a94 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -6,12 +6,17 @@ categories: - 'type:new feature' - title: '🔬 Improvements' labels: - - 'type:enhancement' + - 'type:improvement' - title: '🐞 Bug Fixes' labels: - 'type:bug' + - title: '⬆️ Dependency Updates' + labels: + - 'type:dependencies' change-template: '* $TITLE (via #$NUMBER) - @$AUTHOR' +exclude-labels: + - 'type:internal' template: | $CHANGES diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 10b3c0bb3..125e0aa58 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -8,6 +8,7 @@ on: push: branches: - 'master' + - 'hotfix-*' jobs: build_8: diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 000000000..163862b73 --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,12 @@ +name: "Set theme labels" + +on: + - pull_request + +jobs: + triage: + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v2 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/labels-verify.yml b/.github/workflows/labels-verify.yml index faf8586e1..d3067e48a 100644 --- a/.github/workflows/labels-verify.yml +++ b/.github/workflows/labels-verify.yml @@ -10,4 +10,4 @@ jobs: steps: - uses: zwaldowski/match-label-action@v2 with: - allowed: 'type:bug, type:enhancement, type:new feature' \ No newline at end of file + allowed: 'type:bug, type:enhancement, type:improvement, type:dependencies, type:internal, type:invalid' From 6c612e9548daebd9e16325a5e9b6848eeccb4528 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 23:12:03 +0300 Subject: [PATCH 05/42] bump json-unit from 2.19.0 to 2.25.0 (via #519) --- allure-jsonunit/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/allure-jsonunit/build.gradle.kts b/allure-jsonunit/build.gradle.kts index e5837bae6..21dfc7f5b 100644 --- a/allure-jsonunit/build.gradle.kts +++ b/allure-jsonunit/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure JsonUnit Integration" val agent: Configuration by configurations.creating -val jsonUnitVersion = "2.19.0" +val jsonUnitVersion = "2.25.0" dependencies { agent("org.aspectj:aspectjweaver") From 2f87bc7daa225029d39aaef5b10ca69552e0a87f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 23:29:50 +0300 Subject: [PATCH 06/42] bump toolmantim/release-drafter from v5.2.0 to v5.15.0 (via #512) --- .github/workflows/release-draft.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml index 363a31018..caef7cf56 100644 --- a/.github/workflows/release-draft.yml +++ b/.github/workflows/release-draft.yml @@ -9,6 +9,6 @@ jobs: update_draft_release: runs-on: ubuntu-latest steps: - - uses: toolmantim/release-drafter@v5.2.0 + - uses: toolmantim/release-drafter@v5.15.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 1c917d829ab7eb6b501253514ea402c0e464238e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 23:32:09 +0300 Subject: [PATCH 07/42] bump actions/labeler from v2 to v3 (via #513) --- .github/workflows/labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 163862b73..2f232578e 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -7,6 +7,6 @@ jobs: triage: runs-on: ubuntu-latest steps: - - uses: actions/labeler@v2 + - uses: actions/labeler@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From fea3a31a50c835dbf455dad1775a28974bebb5df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 23:37:12 +0300 Subject: [PATCH 08/42] bump actions/checkout from v1 to v2.3.4 (via #516) --- .github/workflows/build.yaml | 4 ++-- .github/workflows/release.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 125e0aa58..f1870eb9f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -15,7 +15,7 @@ jobs: name: "Build JDK 1.8" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2.3.4 - name: Set up JDK 1.8 uses: actions/setup-java@v1 with: @@ -26,7 +26,7 @@ jobs: name: "Build JDK 11" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2.3.4 - name: Set up JDK 11 uses: actions/setup-java@v1 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 074cd577c..1df69505c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -8,7 +8,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2.3.4 - name: Set up JDK uses: actions/setup-java@v1 with: From 28dd342fc66bdf7dedbb3ad7bd08c6181e37b22b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 23:37:38 +0300 Subject: [PATCH 09/42] bump rest-assured from 4.3.1 to 4.3.3 (via #517) --- allure-rest-assured/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/allure-rest-assured/build.gradle.kts b/allure-rest-assured/build.gradle.kts index c82fa8dc6..6634616ac 100644 --- a/allure-rest-assured/build.gradle.kts +++ b/allure-rest-assured/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure Rest-Assured Integration" val agent: Configuration by configurations.creating -val restAssuredVersion = "4.3.1" +val restAssuredVersion = "4.3.3" dependencies { agent("org.aspectj:aspectjweaver") From 027d3c52bbbff2c1b01f16a469eb6a431def197e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 23:41:08 +0300 Subject: [PATCH 10/42] bump spotless-plugin-gradle from 5.5.1 to 5.11.0 (via #515) --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index ba0db2c95..d01ce3ebc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ buildscript { } dependencies { - classpath("com.diffplug.spotless:spotless-plugin-gradle:5.5.1") + classpath("com.diffplug.spotless:spotless-plugin-gradle:5.11.0") classpath("com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5") classpath("io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE") classpath("ru.vyarus:gradle-quality-plugin:4.3.0") From 885a57a1575336d92b36eeb4d9110078b424fe2e Mon Sep 17 00:00:00 2001 From: Dmitry Baev Date: Mon, 22 Mar 2021 16:17:11 +0300 Subject: [PATCH 11/42] update labeler configuration (via #524) --- .github/labeler.yml | 48 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 6c0d01bed..ca8c814d0 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,82 +1,82 @@ -theme:workflow: +"theme:workflow": - ".github/**" -theme:build: +"theme:build": - "gradle/**" - "build.gradle.kts" - "**/build.gradle.kts" - "gradle.properties" - ".gitignore" -theme:assertj: +"theme:assertj": - "allure-assertj/**" -theme:attachments: +"theme:attachments": - "allure-attachments/**" -theme:citrus: +"theme:citrus": - "allure-citrus/**" -theme:cucumber-jvm: +"theme:cucumber-jvm": - "allure-cucumber*-jvm/**" -theme:descriptions-javadoc: +"theme:descriptions-javadoc": - "allure-descriptions-javadoc/**" -theme:httpclient: +"theme:httpclient": - "allure-httpclient/**" -theme:model: +"theme:model": - "allure-model/**" -theme:core: +"theme:core": - "allure-java-commons/**" - "allure-java-commons-test/**" - "allure-test-filter/**" -theme:jax-rs: +"theme:jax-rs": - "allure-jax-rs/**" -theme:jbehave: +"theme:jbehave": - "allure-jbehave/**" -theme:jsonunit: +"theme:jsonunit": - "allure-jsonunit/**" -theme:junit4: +"theme:junit4": - "allure-junit4/**" - "allure-junit4-aspect/**" -theme:junit-platform: +"theme:junit-platform": - "allure-junit5/**" - "allure-junit5-assert/**" - "allure-junit-platform/**" -theme:karate: +"theme:karate": - "allure-karate/**" -theme:okhttp: +"theme:okhttp": - "allure-okhttp/**" - "allure-okhttp3/**" -theme:rest-assured: +"theme:rest-assured": - "allure-rest-assured/**" -theme:scalatest: +"theme:scalatest": - "allure-scalatest/**" -theme:selenide: +"theme:selenide": - "allure-selenide/**" -theme:servlet-api: +"theme:servlet-api": - "allure-servlet-api/**" -theme:spock: +"theme:spock": - "allure-spock/**" -theme:spring: +"theme:spring": - "allure-spring-web/**" -theme:testng: +"theme:testng": - "allure-testng/**" From 8c0c0bf1a7a02d223ac840263e049056a0d3244c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Mar 2021 16:20:53 +0300 Subject: [PATCH 12/42] bump mockserver-netty from 5.11.1 to 5.11.2 (via #523) --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index d01ce3ebc..be89f5ccb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -99,7 +99,7 @@ configure(subprojects) { dependency("org.freemarker:freemarker:2.3.30") dependency("org.jboss.resteasy:resteasy-client:4.5.8.Final") dependency("org.jooq:joor-java-8:0.9.13") - dependency("org.mock-server:mockserver-netty:5.11.1") + dependency("org.mock-server:mockserver-netty:5.11.2") dependency("org.mockito:mockito-core:3.5.15") dependencySet("org.slf4j:1.7.30") { entry("slf4j-api") From f17e00dde6aab6f75a85279f725a4782aa8e7005 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Mar 2021 15:55:23 +0300 Subject: [PATCH 13/42] bump tika-core from 1.24.1 to 1.25 (via #525) --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index be89f5ccb..9373a52ee 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -91,7 +91,7 @@ configure(subprojects) { dependency("io.github.glytching:junit-extensions:2.4.0") dependency("org.apache.commons:commons-lang3:3.11") dependency("org.apache.httpcomponents:httpclient:4.5.13") - dependency("org.apache.tika:tika-core:1.24.1") + dependency("org.apache.tika:tika-core:1.25") dependency("org.aspectj:aspectjrt:1.9.6") dependency("org.aspectj:aspectjweaver:1.9.6") dependency("org.assertj:assertj-core:3.17.2") From b2a8d8f7a73821b3eeae5b05adf3b4e0575c21d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Mar 2021 16:08:04 +0300 Subject: [PATCH 14/42] bump freemarker from 2.3.30 to 2.3.31 (via #522) --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 9373a52ee..438857b65 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -96,7 +96,7 @@ configure(subprojects) { dependency("org.aspectj:aspectjweaver:1.9.6") dependency("org.assertj:assertj-core:3.17.2") dependency("org.codehaus.groovy:groovy-all:2.5.13") - dependency("org.freemarker:freemarker:2.3.30") + dependency("org.freemarker:freemarker:2.3.31") dependency("org.jboss.resteasy:resteasy-client:4.5.8.Final") dependency("org.jooq:joor-java-8:0.9.13") dependency("org.mock-server:mockserver-netty:5.11.2") From dd16e83442e031affc86d3d36a15d291bf3cbaa8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Mar 2021 16:12:48 +0300 Subject: [PATCH 15/42] bump gradle-quality-plugin from 4.3.0 to 4.5.0 (via #514) --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 438857b65..5305634cd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ buildscript { classpath("com.diffplug.spotless:spotless-plugin-gradle:5.11.0") classpath("com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5") classpath("io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE") - classpath("ru.vyarus:gradle-quality-plugin:4.3.0") + classpath("ru.vyarus:gradle-quality-plugin:4.5.0") } } From 8f433e6986e9b159791f38557499b1749ce54fca Mon Sep 17 00:00:00 2001 From: Artem Eroshenko Date: Wed, 24 Mar 2021 16:30:00 +0300 Subject: [PATCH 16/42] add test filter module (via #474) --- .github/workflows/labels-verify.yml | 2 +- .../io/qameta/allure/test/AllureFeatures.java | 8 ++ allure-junit-platform/build.gradle.kts | 1 + .../junitplatform/AllureJunitPlatform.java | 58 +------- .../AllureJunitPlatformUtils.java | 88 ++++++++++++ .../AllurePostDiscoveryFilter.java | 129 ++++++++++++++++++ ...unit.platform.launcher.PostDiscoveryFilter | 1 + .../AllureJunitPlatformTest.java | 47 +------ .../AllureJunitPlatformTestUtils.java | 99 ++++++++++++++ .../AllurePostDiscoveryFilterTest.java | 112 +++++++++++++++ .../features/TestsWithAllureId.java | 52 +++++++ .../allure/junit4/AllureJunit4Test.java | 1 + allure-test-filter/build.gradle.kts | 39 ++++++ .../testfilter/FileTestPlanSupplier.java | 91 ++++++++++++ .../io/qameta/allure/testfilter/TestPlan.java | 35 +++++ .../allure/testfilter/TestPlanSupplier.java | 35 +++++ .../allure/testfilter/TestPlanUnknown.java | 27 ++++ .../allure/testfilter/TestPlanV1_0.java | 127 +++++++++++++++++ allure-testng/build.gradle.kts | 1 + .../io/qameta/allure/testng/AllureTestNg.java | 23 +++- .../allure/testng/AllureTestNgTestFilter.java | 87 ++++++++++++ .../allure/testng/AllureTestNgTest.java | 127 +++++++++++++++++ .../testng/samples/TestsWithIdForFilter.java | 53 +++++++ settings.gradle.kts | 4 +- 24 files changed, 1142 insertions(+), 105 deletions(-) create mode 100644 allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatformUtils.java create mode 100644 allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllurePostDiscoveryFilter.java create mode 100644 allure-junit-platform/src/main/services/org.junit.platform.launcher.PostDiscoveryFilter create mode 100644 allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/AllureJunitPlatformTestUtils.java create mode 100644 allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/AllurePostDiscoveryFilterTest.java create mode 100644 allure-junit-platform/src/test/java/io/qameta/allure/junitplatform/features/TestsWithAllureId.java create mode 100644 allure-test-filter/build.gradle.kts create mode 100644 allure-test-filter/src/main/java/io/qameta/allure/testfilter/FileTestPlanSupplier.java create mode 100644 allure-test-filter/src/main/java/io/qameta/allure/testfilter/TestPlan.java create mode 100644 allure-test-filter/src/main/java/io/qameta/allure/testfilter/TestPlanSupplier.java create mode 100644 allure-test-filter/src/main/java/io/qameta/allure/testfilter/TestPlanUnknown.java create mode 100644 allure-test-filter/src/main/java/io/qameta/allure/testfilter/TestPlanV1_0.java create mode 100644 allure-testng/src/main/java/io/qameta/allure/testng/AllureTestNgTestFilter.java create mode 100644 allure-testng/src/test/java/io/qameta/allure/testng/samples/TestsWithIdForFilter.java diff --git a/.github/workflows/labels-verify.yml b/.github/workflows/labels-verify.yml index d3067e48a..3f14112bd 100644 --- a/.github/workflows/labels-verify.yml +++ b/.github/workflows/labels-verify.yml @@ -10,4 +10,4 @@ jobs: steps: - uses: zwaldowski/match-label-action@v2 with: - allowed: 'type:bug, type:enhancement, type:improvement, type:dependencies, type:internal, type:invalid' + allowed: 'type:bug, type:new feature, type:improvement, type:dependencies, type:internal, type:invalid' diff --git a/allure-java-commons-test/src/main/java/io/qameta/allure/test/AllureFeatures.java b/allure-java-commons-test/src/main/java/io/qameta/allure/test/AllureFeatures.java index 53a040a09..6ae21bc43 100644 --- a/allure-java-commons-test/src/main/java/io/qameta/allure/test/AllureFeatures.java +++ b/allure-java-commons-test/src/main/java/io/qameta/allure/test/AllureFeatures.java @@ -222,4 +222,12 @@ @Feature("Timeline") @interface Severity { } + + @Documented + @Inherited + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.METHOD, ElementType.TYPE}) + @Feature("Filtration") + @interface Filtration { + } } diff --git a/allure-junit-platform/build.gradle.kts b/allure-junit-platform/build.gradle.kts index 82528cfc2..a4b970826 100644 --- a/allure-junit-platform/build.gradle.kts +++ b/allure-junit-platform/build.gradle.kts @@ -7,6 +7,7 @@ dependencies { api(project(":allure-java-commons")) implementation("org.junit.jupiter:junit-jupiter-api") implementation("org.junit.platform:junit-platform-launcher") + implementation(project(":allure-test-filter")) testAnnotationProcessor("org.slf4j:slf4j-simple") testAnnotationProcessor(project(":allure-descriptions-javadoc")) testImplementation("io.github.glytching:junit-extensions") diff --git a/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java b/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java index 60dc36185..10ff7c5e8 100644 --- a/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java +++ b/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java @@ -359,8 +359,10 @@ private void startTestCase(final TestIdentifier testIdentifier) { final String uuid = tests.getOrCreate(testIdentifier); final Optional testSource = testIdentifier.getSource(); - final Optional testMethod = testSource.flatMap(this::getTestMethod); - final Optional> testClass = testSource.flatMap(this::getTestClass); + final Optional testMethod = testSource + .flatMap(AllureJunitPlatformUtils::getTestMethod); + final Optional> testClass = testSource + .flatMap(AllureJunitPlatformUtils::getTestClass); final TestResult result = new TestResult() .setUuid(uuid) @@ -384,7 +386,7 @@ private void startTestCase(final TestIdentifier testIdentifier) { createLanguageLabel("java") )); - testSource.flatMap(this::getFullName).ifPresent(result::setFullName); + testSource.flatMap(AllureJunitPlatformUtils::getFullName).ifPresent(result::setFullName); testSource.map(this::getSourceLabels).ifPresent(result.getLabels()::addAll); testClass.ifPresent(aClass -> { final String suiteName = getDisplayName(aClass).orElse(aClass.getCanonicalName()); @@ -508,56 +510,6 @@ private List