This is an automated email from the ASF dual-hosted git repository. nfilotto pushed a commit to branch CAMEL-19400/reduce-it-duration in repository https://gitbox.apache.org/repos/asf/camel.git
commit ca9fbbb6698a5744b435cf5d76ce76b62a0bdec9 Author: Nicolas Filotto <nfilo...@talend.com> AuthorDate: Mon May 29 19:02:58 2023 +0200 CAMEL-19400: camel-test-infra - Only initialize and shutdown for outer classes --- .../infra/common/services/TestServiceUtil.java | 31 ++++++++++++++++------ 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestServiceUtil.java b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestServiceUtil.java index 95e8d32ff95..0a688ca8cbd 100644 --- a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestServiceUtil.java +++ b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestServiceUtil.java @@ -17,6 +17,7 @@ package org.apache.camel.test.infra.common.services; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.extension.ExtensionContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,10 +40,12 @@ public final class TestServiceUtil { * @throws Exception exception thrown while initializing (if any) */ public static void tryInitialize(TestService service, ExtensionContext extensionContext) throws Exception { - try { - service.initialize(); - } catch (Exception e) { - logAndRethrow(service, extensionContext, e); + if (isOuterTestClass(extensionContext)) { + try { + service.initialize(); + } catch (Exception e) { + logAndRethrow(service, extensionContext, e); + } } } @@ -54,10 +57,12 @@ public final class TestServiceUtil { * @throws Exception exception thrown while initializing (if any) */ public static void tryShutdown(TestService service, ExtensionContext extensionContext) throws Exception { - try { - service.shutdown(); - } catch (Exception e) { - logAndRethrow(service, extensionContext, e); + if (isOuterTestClass(extensionContext)) { + try { + service.shutdown(); + } catch (Exception e) { + logAndRethrow(service, extensionContext, e); + } } } @@ -76,4 +81,14 @@ public final class TestServiceUtil { extensionContext.getDisplayName(), o.getClass().getName()); throw exception; } + + /** + * Indicates whether the test class called is an outer class. + * + * @param extensionContext JUnit's extension context + * @return {@code true} if the test class called is an outer class, {@code false} otherwise. + */ + private static boolean isOuterTestClass(ExtensionContext extensionContext) { + return extensionContext.getTestClass().map(aClass -> aClass.getAnnotation(Nested.class) == null).orElse(true); + } }