From e5e3bd5e1404beac4d381b873fee0760b7e98a13 Mon Sep 17 00:00:00 2001 From: Mikhail Sidelnikov Date: Fri, 18 May 2018 15:20:53 +0300 Subject: [PATCH 1/6] added @Disabled tests handling --- .../io/qameta/allure/junit5/AllureJunit5.java | 28 +++++++++++++++++++ .../allure/junit5/AllureJunit5Test.java | 11 ++++++++ .../allure/junit5/features/DisabledTests.java | 13 +++++++++ 3 files changed, 52 insertions(+) create mode 100644 allure-junit-platform/src/test/java/io/qameta/allure/junit5/features/DisabledTests.java diff --git a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java index 300819d35..6d81dca33 100644 --- a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java +++ b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java @@ -81,6 +81,34 @@ public void executionStarted(final TestIdentifier testIdentifier) { } } + @Override + public void executionSkipped(TestIdentifier testIdentifier, String reason) { + if (testIdentifier.isTest()) { + final Optional methodSource = testIdentifier.getSource() + .filter(MethodSource.class::isInstance) + .map(MethodSource.class::cast); + final String uuid = tests.get(); + final TestResult result = new TestResult() + .withUuid(uuid) + .withName(testIdentifier.getDisplayName()) + .withLabels(getTags(testIdentifier)) + .withHistoryId(getHistoryId(testIdentifier)) + .withStage(Stage.FINISHED) + .withStatus(SKIPPED); + + methodSource.ifPresent(source -> { + result.setDescription(getDescription(source)); + result.getLabels().add(new Label().withName("suite").withValue(getSuite(source))); + result.getLabels().add(new Label().withName("package").withValue(source.getClassName())); + }); + + getLifecycle().scheduleTestCase(result); + getLifecycle().startTestCase(uuid); + getLifecycle().stopTestCase(uuid); + getLifecycle().writeTestCase(uuid); + } + } + @Override public void executionFinished(final TestIdentifier testIdentifier, final TestExecutionResult testExecutionResult) { if (testIdentifier.isTest()) { diff --git a/allure-junit-platform/src/test/java/io/qameta/allure/junit5/AllureJunit5Test.java b/allure-junit-platform/src/test/java/io/qameta/allure/junit5/AllureJunit5Test.java index 05515883c..ed6bd348f 100644 --- a/allure-junit-platform/src/test/java/io/qameta/allure/junit5/AllureJunit5Test.java +++ b/allure-junit-platform/src/test/java/io/qameta/allure/junit5/AllureJunit5Test.java @@ -251,6 +251,17 @@ void shouldProcessJunit5Description() { .contains("Test description"); } + @Test + void shouldProcessDisabledTests() { + runClasses(DisabledTests.class); + + final List testResults = results.getTestResults(); + assertThat(testResults) + .hasSize(1) + .first() + .hasFieldOrPropertyWithValue("status", Status.SKIPPED); + } + private void runClasses(Class... classes) { final ClassSelector[] classSelectors = Stream.of(classes) .map(DiscoverySelectors::selectClass) diff --git a/allure-junit-platform/src/test/java/io/qameta/allure/junit5/features/DisabledTests.java b/allure-junit-platform/src/test/java/io/qameta/allure/junit5/features/DisabledTests.java new file mode 100644 index 000000000..c1bd74bf5 --- /dev/null +++ b/allure-junit-platform/src/test/java/io/qameta/allure/junit5/features/DisabledTests.java @@ -0,0 +1,13 @@ +package io.qameta.allure.junit5.features; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +public class DisabledTests { + + @Test + @Disabled + void disabledByAnnotation() { + + } +} From ed3c449dd5e999d788bf9232bfaa5fda08c162da Mon Sep 17 00:00:00 2001 From: Mikhail Sidelnikov Date: Fri, 18 May 2018 15:46:47 +0300 Subject: [PATCH 2/6] suite and package strings moved to constants in AllureJunit5.java --- .../java/io/qameta/allure/junit5/AllureJunit5.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java index 6d81dca33..483fd3dfd 100644 --- a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java +++ b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java @@ -37,6 +37,8 @@ public class AllureJunit5 implements TestExecutionListener { private static final Logger LOGGER = LoggerFactory.getLogger(AllureJunit5.class); private static final String TAG = "tag"; + private static final String SUITE = "suite"; + private static final String PACKAGE = "package"; private final ThreadLocal tests @@ -72,8 +74,8 @@ public void executionStarted(final TestIdentifier testIdentifier) { methodSource.ifPresent(source -> { result.setDescription(getDescription(source)); - result.getLabels().add(new Label().withName("suite").withValue(getSuite(source))); - result.getLabels().add(new Label().withName("package").withValue(source.getClassName())); + result.getLabels().add(new Label().withName(SUITE).withValue(getSuite(source))); + result.getLabels().add(new Label().withName(PACKAGE).withValue(source.getClassName())); }); getLifecycle().scheduleTestCase(result); @@ -98,8 +100,8 @@ public void executionSkipped(TestIdentifier testIdentifier, String reason) { methodSource.ifPresent(source -> { result.setDescription(getDescription(source)); - result.getLabels().add(new Label().withName("suite").withValue(getSuite(source))); - result.getLabels().add(new Label().withName("package").withValue(source.getClassName())); + result.getLabels().add(new Label().withName(SUITE).withValue(getSuite(source))); + result.getLabels().add(new Label().withName(PACKAGE).withValue(source.getClassName())); }); getLifecycle().scheduleTestCase(result); From c70e672921e230817f02c262c96ca15eacf728fd Mon Sep 17 00:00:00 2001 From: Mikhail Sidelnikov Date: Fri, 18 May 2018 16:19:25 +0300 Subject: [PATCH 3/6] fix for checkstyle problems --- .../io/qameta/allure/junit5/AllureJunit5.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java index 483fd3dfd..abfb5b6e7 100644 --- a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java +++ b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java @@ -84,11 +84,8 @@ public void executionStarted(final TestIdentifier testIdentifier) { } @Override - public void executionSkipped(TestIdentifier testIdentifier, String reason) { + public void executionSkipped(final TestIdentifier testIdentifier, final String reason) { if (testIdentifier.isTest()) { - final Optional methodSource = testIdentifier.getSource() - .filter(MethodSource.class::isInstance) - .map(MethodSource.class::cast); final String uuid = tests.get(); final TestResult result = new TestResult() .withUuid(uuid) @@ -98,11 +95,15 @@ public void executionSkipped(TestIdentifier testIdentifier, String reason) { .withStage(Stage.FINISHED) .withStatus(SKIPPED); - methodSource.ifPresent(source -> { - result.setDescription(getDescription(source)); - result.getLabels().add(new Label().withName(SUITE).withValue(getSuite(source))); - result.getLabels().add(new Label().withName(PACKAGE).withValue(source.getClassName())); - }); + testIdentifier + .getSource() + .filter(MethodSource.class::isInstance) + .map(MethodSource.class::cast) + .ifPresent(source -> { + result.setDescription(getDescription(source)); + result.getLabels().add(new Label().withName(SUITE).withValue(getSuite(source))); + result.getLabels().add(new Label().withName(PACKAGE).withValue(source.getClassName())); + }); getLifecycle().scheduleTestCase(result); getLifecycle().startTestCase(uuid); From d1129c90bc971ecf1e45c5e75cae516511ffe826 Mon Sep 17 00:00:00 2001 From: Mikhail Sidelnikov Date: Fri, 18 May 2018 16:50:45 +0300 Subject: [PATCH 4/6] fix for error in tests --- .../io/qameta/allure/junit5/AllureJunit5.java | 10 +- .../qameta/allure/junit5/AnnotationsTest.java | 114 +++++++++--------- 2 files changed, 65 insertions(+), 59 deletions(-) diff --git a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java index abfb5b6e7..c99c87a3f 100644 --- a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java +++ b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java @@ -92,8 +92,7 @@ public void executionSkipped(final TestIdentifier testIdentifier, final String r .withName(testIdentifier.getDisplayName()) .withLabels(getTags(testIdentifier)) .withHistoryId(getHistoryId(testIdentifier)) - .withStage(Stage.FINISHED) - .withStatus(SKIPPED); + .withStage(Stage.RUNNING); testIdentifier .getSource() @@ -107,6 +106,13 @@ public void executionSkipped(final TestIdentifier testIdentifier, final String r getLifecycle().scheduleTestCase(result); getLifecycle().startTestCase(uuid); + + tests.remove(); + getLifecycle().updateTestCase(uuid, testResult -> { + testResult.setStage(Stage.FINISHED); + testResult.setStatus(SKIPPED); + }); + getLifecycle().stopTestCase(uuid); getLifecycle().writeTestCase(uuid); } diff --git a/allure-junit5/src/test/java/io/qameta/allure/junit5/AnnotationsTest.java b/allure-junit5/src/test/java/io/qameta/allure/junit5/AnnotationsTest.java index 2327b7062..97ae77ec1 100644 --- a/allure-junit5/src/test/java/io/qameta/allure/junit5/AnnotationsTest.java +++ b/allure-junit5/src/test/java/io/qameta/allure/junit5/AnnotationsTest.java @@ -53,67 +53,67 @@ void shouldProcessMethodLabels() { } - @Test - void shouldProcessClassLabels() { - runClasses(TestWithClassLabels.class); - final List testResults = results.getTestResults(); - assertThat(testResults) - .hasSize(1) - .flatExtracting(TestResult::getLabels) - .extracting(Label::getValue) - .contains( - "epic1", "epic2", "epic3", - "feature1", "feature2", "feature3", - "story1", "story2", "story3", - "some-owner" - ); - } - - @Test - void shouldProcessMethodLinks() { - runClasses(TestWithMethodLinks.class); - final List testResults = results.getTestResults(); - assertThat(testResults) - .hasSize(1) - .flatExtracting(TestResult::getLinks) - .extracting(Link::getName) - .contains( - "LINK-1", "LINK-2", "LINK-3", - "ISSUE-1", "ISSUE-2", "ISSUE-3", - "TMS-1", "TMS-2", "TMS-3" - ); - } - - @Test - void shouldProcessClassLinks() { - runClasses(TestWithClassLinks.class); - final List testResults = results.getTestResults(); - assertThat(testResults) - .hasSize(1) - .flatExtracting(TestResult::getLinks) - .extracting(Link::getName) - .contains( - "LINK-1", "LINK-2", "LINK-3", - "ISSUE-1", "ISSUE-2", "ISSUE-3", - "TMS-1", "TMS-2", "TMS-3" - ); - } +// @Test +// void shouldProcessClassLabels() { +// runClasses(TestWithClassLabels.class); +// final List testResults = results.getTestResults(); +// assertThat(testResults) +// .hasSize(1) +// .flatExtracting(TestResult::getLabels) +// .extracting(Label::getValue) +// .contains( +// "epic1", "epic2", "epic3", +// "feature1", "feature2", "feature3", +// "story1", "story2", "story3", +// "some-owner" +// ); +// } +// +// @Test +// void shouldProcessMethodLinks() { +// runClasses(TestWithMethodLinks.class); +// final List testResults = results.getTestResults(); +// assertThat(testResults) +// .hasSize(1) +// .flatExtracting(TestResult::getLinks) +// .extracting(Link::getName) +// .contains( +// "LINK-1", "LINK-2", "LINK-3", +// "ISSUE-1", "ISSUE-2", "ISSUE-3", +// "TMS-1", "TMS-2", "TMS-3" +// ); +// } +// +// @Test +// void shouldProcessClassLinks() { +// runClasses(TestWithClassLinks.class); +// final List testResults = results.getTestResults(); +// assertThat(testResults) +// .hasSize(1) +// .flatExtracting(TestResult::getLinks) +// .extracting(Link::getName) +// .contains( +// "LINK-1", "LINK-2", "LINK-3", +// "ISSUE-1", "ISSUE-2", "ISSUE-3", +// "TMS-1", "TMS-2", "TMS-3" +// ); +// } @Test @Disabled("not implemented") void shouldProcessDynamicTestLabels() { - runClasses(DynamicTests.class); - final List testResults = results.getTestResults(); - assertThat(testResults) - .hasSize(3) - .flatExtracting(TestResult::getLabels) - .extracting(Label::getValue) - .contains( - "epic1", "epic2", "epic3", - "feature1", "feature2", "feature3", - "story1", "story2", "story3", - "some-owner" - ); +// runClasses(DynamicTests.class); +// final List testResults = results.getTestResults(); +// assertThat(testResults) +// .hasSize(3) +// .flatExtracting(TestResult::getLabels) +// .extracting(Label::getValue) +// .contains( +// "epic1", "epic2", "epic3", +// "feature1", "feature2", "feature3", +// "story1", "story2", "story3", +// "some-owner" +// ); } @BeforeEach From 0723a61550a1933e03175bcc1460d710056f5b9f Mon Sep 17 00:00:00 2001 From: Mikhail Sidelnikov Date: Fri, 18 May 2018 17:11:45 +0300 Subject: [PATCH 5/6] uncommented tests(used for debug a problem) --- .../qameta/allure/junit5/AnnotationsTest.java | 114 +++++++++--------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/allure-junit5/src/test/java/io/qameta/allure/junit5/AnnotationsTest.java b/allure-junit5/src/test/java/io/qameta/allure/junit5/AnnotationsTest.java index 97ae77ec1..2327b7062 100644 --- a/allure-junit5/src/test/java/io/qameta/allure/junit5/AnnotationsTest.java +++ b/allure-junit5/src/test/java/io/qameta/allure/junit5/AnnotationsTest.java @@ -53,67 +53,67 @@ void shouldProcessMethodLabels() { } -// @Test -// void shouldProcessClassLabels() { -// runClasses(TestWithClassLabels.class); -// final List testResults = results.getTestResults(); -// assertThat(testResults) -// .hasSize(1) -// .flatExtracting(TestResult::getLabels) -// .extracting(Label::getValue) -// .contains( -// "epic1", "epic2", "epic3", -// "feature1", "feature2", "feature3", -// "story1", "story2", "story3", -// "some-owner" -// ); -// } -// -// @Test -// void shouldProcessMethodLinks() { -// runClasses(TestWithMethodLinks.class); -// final List testResults = results.getTestResults(); -// assertThat(testResults) -// .hasSize(1) -// .flatExtracting(TestResult::getLinks) -// .extracting(Link::getName) -// .contains( -// "LINK-1", "LINK-2", "LINK-3", -// "ISSUE-1", "ISSUE-2", "ISSUE-3", -// "TMS-1", "TMS-2", "TMS-3" -// ); -// } -// -// @Test -// void shouldProcessClassLinks() { -// runClasses(TestWithClassLinks.class); -// final List testResults = results.getTestResults(); -// assertThat(testResults) -// .hasSize(1) -// .flatExtracting(TestResult::getLinks) -// .extracting(Link::getName) -// .contains( -// "LINK-1", "LINK-2", "LINK-3", -// "ISSUE-1", "ISSUE-2", "ISSUE-3", -// "TMS-1", "TMS-2", "TMS-3" -// ); -// } + @Test + void shouldProcessClassLabels() { + runClasses(TestWithClassLabels.class); + final List testResults = results.getTestResults(); + assertThat(testResults) + .hasSize(1) + .flatExtracting(TestResult::getLabels) + .extracting(Label::getValue) + .contains( + "epic1", "epic2", "epic3", + "feature1", "feature2", "feature3", + "story1", "story2", "story3", + "some-owner" + ); + } + + @Test + void shouldProcessMethodLinks() { + runClasses(TestWithMethodLinks.class); + final List testResults = results.getTestResults(); + assertThat(testResults) + .hasSize(1) + .flatExtracting(TestResult::getLinks) + .extracting(Link::getName) + .contains( + "LINK-1", "LINK-2", "LINK-3", + "ISSUE-1", "ISSUE-2", "ISSUE-3", + "TMS-1", "TMS-2", "TMS-3" + ); + } + + @Test + void shouldProcessClassLinks() { + runClasses(TestWithClassLinks.class); + final List testResults = results.getTestResults(); + assertThat(testResults) + .hasSize(1) + .flatExtracting(TestResult::getLinks) + .extracting(Link::getName) + .contains( + "LINK-1", "LINK-2", "LINK-3", + "ISSUE-1", "ISSUE-2", "ISSUE-3", + "TMS-1", "TMS-2", "TMS-3" + ); + } @Test @Disabled("not implemented") void shouldProcessDynamicTestLabels() { -// runClasses(DynamicTests.class); -// final List testResults = results.getTestResults(); -// assertThat(testResults) -// .hasSize(3) -// .flatExtracting(TestResult::getLabels) -// .extracting(Label::getValue) -// .contains( -// "epic1", "epic2", "epic3", -// "feature1", "feature2", "feature3", -// "story1", "story2", "story3", -// "some-owner" -// ); + runClasses(DynamicTests.class); + final List testResults = results.getTestResults(); + assertThat(testResults) + .hasSize(3) + .flatExtracting(TestResult::getLabels) + .extracting(Label::getValue) + .contains( + "epic1", "epic2", "epic3", + "feature1", "feature2", "feature3", + "story1", "story2", "story3", + "some-owner" + ); } @BeforeEach From 95a18d812352ae27b54bd53b2606322ba59d7bcf Mon Sep 17 00:00:00 2001 From: Mikhail Sidelnikov Date: Fri, 18 May 2018 17:24:13 +0300 Subject: [PATCH 6/6] removed empty string for rerun build --- .../src/main/java/io/qameta/allure/junit5/AllureJunit5.java | 1 - 1 file changed, 1 deletion(-) diff --git a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java index c99c87a3f..89ec43cc0 100644 --- a/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java +++ b/allure-junit-platform/src/main/java/io/qameta/allure/junit5/AllureJunit5.java @@ -112,7 +112,6 @@ public void executionSkipped(final TestIdentifier testIdentifier, final String r testResult.setStage(Stage.FINISHED); testResult.setStatus(SKIPPED); }); - getLifecycle().stopTestCase(uuid); getLifecycle().writeTestCase(uuid); }