From d1ca8074fa5aae01b917bbe082e5b995272d1808 Mon Sep 17 00:00:00 2001 From: Stephane Epardaud Date: Mon, 15 Feb 2021 14:47:16 +0100 Subject: [PATCH] Apply test profiles on super-tests, for native image --- .../quarkus/test/junit/NativeTestExtension.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/NativeTestExtension.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/NativeTestExtension.java index c3ebe7b8b471c..bbb4a4f0a091a 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/NativeTestExtension.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/NativeTestExtension.java @@ -93,11 +93,7 @@ private ExtensionState ensureStarted(ExtensionContext extensionContext) { ExtensionContext root = extensionContext.getRoot(); ExtensionContext.Store store = root.getStore(ExtensionContext.Namespace.GLOBAL); ExtensionState state = store.get(ExtensionState.class.getName(), ExtensionState.class); - TestProfile annotation = testClass.getAnnotation(TestProfile.class); - Class selectedProfile = null; - if (annotation != null) { - selectedProfile = annotation.value(); - } + Class selectedProfile = findProfile(testClass); boolean wrongProfile = !Objects.equals(selectedProfile, quarkusTestProfile); // we reload the test resources if we changed test class and if we had or will have per-test test resources boolean reloadTestResources = !Objects.equals(extensionContext.getRequiredTestClass(), currentJUnitTestClass) @@ -125,6 +121,17 @@ private ExtensionState ensureStarted(ExtensionContext extensionContext) { return state; } + private Class findProfile(Class testClass) { + while (testClass != Object.class) { + TestProfile annotation = testClass.getAnnotation(TestProfile.class); + if (annotation != null) { + return annotation.value(); + } + testClass = testClass.getSuperclass(); + } + return null; + } + private ExtensionState doNativeStart(ExtensionContext context, Class profile) throws Throwable { quarkusTestProfile = profile;