From 5725791a1f620f1c7358e97958030b00bc67b2f9 Mon Sep 17 00:00:00 2001 From: George Gastaldi Date: Thu, 9 Feb 2023 14:57:24 -0300 Subject: [PATCH] Remove `@NativeImageTest` - This finally removes the long-deprecated `@NativeImageTest` and its reference in the documentation. --- .../dev/testing/JunitTestRunner.java | 13 +++--- .../deployment/dev/testing/TestConfig.java | 2 +- .../quarkus/runtime/test/TestScopeSetup.java | 4 +- .../src/main/asciidoc/amazon-lambda-http.adoc | 2 +- docs/src/main/asciidoc/amazon-lambda.adoc | 2 +- .../main/asciidoc/building-native-image.adoc | 2 +- .../asciidoc/getting-started-testing.adoc | 2 +- docs/src/main/asciidoc/maven-tooling.adoc | 2 +- .../main/asciidoc/rest-client-reactive.adoc | 2 +- docs/src/main/asciidoc/security-testing.adoc | 2 +- .../runtime/ArcTestRequestScopeProvider.java | 8 ++-- .../quarkus/test/common/TestScopeManager.java | 8 ++-- .../DisableIfBuiltWithGraalVMNewerThan.java | 4 +- ...eIfBuiltWithGraalVMNewerThanCondition.java | 4 +- .../DisableIfBuiltWithGraalVMOlderThan.java | 4 +- ...eIfBuiltWithGraalVMOlderThanCondition.java | 4 +- .../DisabledOnIntegrationTestCondition.java | 12 +----- .../test/junit/DisabledOnNativeImage.java | 42 ------------------- .../junit/DisabledOnNativeImageCondition.java | 39 ----------------- .../test/junit/IntegrationTestUtil.java | 4 +- .../quarkus/test/junit/NativeImageTest.java | 34 --------------- .../test/junit/QuarkusTestExtension.java | 4 +- 22 files changed, 35 insertions(+), 165 deletions(-) delete mode 100644 test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnNativeImage.java delete mode 100644 test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnNativeImageCondition.java delete mode 100644 test-framework/junit5/src/main/java/io/quarkus/test/junit/NativeImageTest.java diff --git a/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java b/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java index cf5be62f97e40..a9cdbf833aa01 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java @@ -84,7 +84,6 @@ public class JunitTestRunner { public static final DotName QUARKUS_TEST = DotName.createSimple("io.quarkus.test.junit.QuarkusTest"); public static final DotName QUARKUS_MAIN_TEST = DotName.createSimple("io.quarkus.test.junit.main.QuarkusMainTest"); public static final DotName QUARKUS_INTEGRATION_TEST = DotName.createSimple("io.quarkus.test.junit.QuarkusIntegrationTest"); - public static final DotName NATIVE_IMAGE_TEST = DotName.createSimple("io.quarkus.test.junit.NativeImageTest"); public static final DotName TEST_PROFILE = DotName.createSimple("io.quarkus.test.junit.TestProfile"); public static final DotName TEST = DotName.createSimple(Test.class.getName()); public static final DotName REPEATED_TEST = DotName.createSimple(RepeatedTest.class.getName()); @@ -555,13 +554,11 @@ private DiscoveryResult discoverTestClasses() { //we now have all the classes by name //these tests we never run Set integrationTestClasses = new HashSet<>(); - for (DotName intAnno : Arrays.asList(QUARKUS_INTEGRATION_TEST, NATIVE_IMAGE_TEST)) { - for (AnnotationInstance i : index.getAnnotations(intAnno)) { - DotName name = i.target().asClass().name(); - integrationTestClasses.add(name.toString()); - for (ClassInfo clazz : index.getAllKnownSubclasses(name)) { - integrationTestClasses.add(clazz.name().toString()); - } + for (AnnotationInstance i : index.getAnnotations(QUARKUS_INTEGRATION_TEST)) { + DotName name = i.target().asClass().name(); + integrationTestClasses.add(name.toString()); + for (ClassInfo clazz : index.getAllKnownSubclasses(name)) { + integrationTestClasses.add(clazz.name().toString()); } } Set quarkusTestClasses = new HashSet<>(); diff --git a/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestConfig.java b/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestConfig.java index aa27268145693..57d0a0aece9cb 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestConfig.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestConfig.java @@ -177,7 +177,7 @@ public class TestConfig { Optional> argLine; /** - * Used in {@code @QuarkusIntegrationTest} and {@code NativeImageTest} to determine how long the test will wait for the + * Used in {@code @QuarkusIntegrationTest} to determine how long the test will wait for the * application to launch */ @ConfigItem(defaultValue = "PT1M") diff --git a/core/runtime/src/main/java/io/quarkus/runtime/test/TestScopeSetup.java b/core/runtime/src/main/java/io/quarkus/runtime/test/TestScopeSetup.java index 227039749dc53..47fabe12fb163 100644 --- a/core/runtime/src/main/java/io/quarkus/runtime/test/TestScopeSetup.java +++ b/core/runtime/src/main/java/io/quarkus/runtime/test/TestScopeSetup.java @@ -2,7 +2,7 @@ public interface TestScopeSetup { - void setup(boolean isNativeImageTest); + void setup(boolean isIntegrationTest); - void tearDown(boolean isNativeImageTest); + void tearDown(boolean isIntegrationTest); } diff --git a/docs/src/main/asciidoc/amazon-lambda-http.adoc b/docs/src/main/asciidoc/amazon-lambda-http.adoc index e822762e31895..a99088761153b 100644 --- a/docs/src/main/asciidoc/amazon-lambda-http.adoc +++ b/docs/src/main/asciidoc/amazon-lambda-http.adoc @@ -156,7 +156,7 @@ If you want to hand code raw events for the AWS REST API, Quarkus has its own im and `io.quarkus.amazon.lambda.http.model.AwsProxyResponse`. This corresponds to `quarkus-amazon-lambda-rest` extension and the AWS REST API. -The mock event server is also started for `@NativeImageTest` and `@QuarkusIntegrationTest` tests so will work +The mock event server is also started for `@QuarkusIntegrationTest` tests so will work with native binaries too. All this provides similar functionality to the SAM CLI local testing, without the overhead of Docker. Finally, if port 8080 or port 8081 is not available on your computer, you can modify the dev diff --git a/docs/src/main/asciidoc/amazon-lambda.adoc b/docs/src/main/asciidoc/amazon-lambda.adoc index 5073512abb85f..c43a9b4dd30ff 100644 --- a/docs/src/main/asciidoc/amazon-lambda.adoc +++ b/docs/src/main/asciidoc/amazon-lambda.adoc @@ -348,7 +348,7 @@ public class LambdaHandlerTest { } ---- -The mock event server is also started for `@NativeImageTest` and `@QuarkusIntegrationTest` tests so will work +The mock event server is also started for `@QuarkusIntegrationTest` tests so will work with native binaries too. All this provides similar functionality to the SAM CLI local testing, without the overhead of Docker. Finally, if port 8080 or port 8081 is not available on your computer, you can modify the dev diff --git a/docs/src/main/asciidoc/building-native-image.adoc b/docs/src/main/asciidoc/building-native-image.adoc index 3e1cccd24005e..e1bd97d3dfab9 100644 --- a/docs/src/main/asciidoc/building-native-image.adoc +++ b/docs/src/main/asciidoc/building-native-image.adoc @@ -277,7 +277,7 @@ to 300 seconds, use: `./mvnw verify -Pnative -Dquarkus.test.wait-time=300`. [WARNING] ==== -This procedure was formerly accomplished using the `@NativeImageTest` annotation. `@NativeImageTest` is considered deprecated in favor of `@QuarkusIntegrationTest` which provides a superset of the testing +This procedure was formerly accomplished using the `@NativeImageTest` annotation. `@NativeImageTest` was replaced by `@QuarkusIntegrationTest` which provides a superset of the testing capabilities of `@NativeImageTest`. More information about `@QuarkusIntegrationTest` can be found in the xref:getting-started-testing.adoc#quarkus-integration-test[Testing Guide]. ==== diff --git a/docs/src/main/asciidoc/getting-started-testing.adoc b/docs/src/main/asciidoc/getting-started-testing.adoc index 43bbc5c87accd..f95460d80e315 100644 --- a/docs/src/main/asciidoc/getting-started-testing.adoc +++ b/docs/src/main/asciidoc/getting-started-testing.adoc @@ -1215,7 +1215,7 @@ If instead a native image was built, then the application is launched as `./appl Finally, if a container image was created during the build (by including the `quarkus-container-image-jib` or `quarkus-container-image-docker` extensions and having the `quarkus.container-image.build=true` property configured), then a container is created and run (this requires the `docker` executable being present). -As is the case with `@NativeImageTest`, this is a black box test that supports the same set features and has the same limitations. +This is a black box test that supports the same set features and has the same limitations. [NOTE] ==== diff --git a/docs/src/main/asciidoc/maven-tooling.adoc b/docs/src/main/asciidoc/maven-tooling.adoc index 34dbf0a5cac70..cc133af5e8f34 100644 --- a/docs/src/main/asciidoc/maven-tooling.adoc +++ b/docs/src/main/asciidoc/maven-tooling.adoc @@ -558,7 +558,7 @@ As mentioned below, this is overridden in the `native` profile. `maven.home` is only required if you have custom configuration in `${maven.home}/conf/settings.xml`. <7> Use a specific `native` profile for native executable building. <8> Enable the `native` package type. The build will therefore produce a native executable. -<9> Always run integration tests when building a native image (test names `*IT` and annotated with `@QuarkusIntegrationTest` or `@NativeImageTest`). + +<9> Always run integration tests when building a native image (test names `*IT` and annotated with `@QuarkusIntegrationTest`). + If you do not wish to run integration tests when building a native image, simply remove this property altogether or set its value to `true`. [[fast-jar]] diff --git a/docs/src/main/asciidoc/rest-client-reactive.adoc b/docs/src/main/asciidoc/rest-client-reactive.adoc index 1590a44fa2659..21374b9d064cb 100644 --- a/docs/src/main/asciidoc/rest-client-reactive.adoc +++ b/docs/src/main/asciidoc/rest-client-reactive.adoc @@ -1149,7 +1149,7 @@ You can do it with Mockito's `@InjectMock` or with `QuarkusMock`. This section shows how to replace your client with a mock. If you would like to get a more in-depth understanding of how mocking works in Quarkus, see the blog post on https://quarkus.io/blog/mocking/[Mocking CDI beans]. -NOTE: Mocking does not work when using `@NativeImageTest` or `@QuarkusIntegrationTest`. +NOTE: Mocking does not work when using `@QuarkusIntegrationTest`. Let's assume you have the following client: [source,java] diff --git a/docs/src/main/asciidoc/security-testing.adoc b/docs/src/main/asciidoc/security-testing.adoc index 49e4faa271749..9b7ce55440fbf 100644 --- a/docs/src/main/asciidoc/security-testing.adoc +++ b/docs/src/main/asciidoc/security-testing.adoc @@ -93,7 +93,7 @@ See xref:security-oidc-bearer-authentication-concept.adoc#integration-testing-se [WARNING] ==== -The feature is only available for `@QuarkusTest` and will **not** work on a `@NativeImageTest` or `@QuarkusIntegrationTest`. +The feature is only available for `@QuarkusTest` and will **not** work on a `@QuarkusIntegrationTest`. ==== [TIP] diff --git a/extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ArcTestRequestScopeProvider.java b/extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ArcTestRequestScopeProvider.java index 3816d4c9e273d..7ef8a6fd7d2fb 100644 --- a/extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ArcTestRequestScopeProvider.java +++ b/extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/ArcTestRequestScopeProvider.java @@ -11,8 +11,8 @@ public class ArcTestRequestScopeProvider implements TestScopeSetup { private static final Logger LOGGER = Logger.getLogger(ArcTestRequestScopeProvider.class); @Override - public void setup(boolean isNativeImageTest) { - if (isNativeImageTest) { + public void setup(boolean isIntegrationTest) { + if (isIntegrationTest) { return; } ArcContainer container = Arc.container(); @@ -25,8 +25,8 @@ public void setup(boolean isNativeImageTest) { } @Override - public void tearDown(boolean isNativeImageTest) { - if (isNativeImageTest) { + public void tearDown(boolean isIntegrationTest) { + if (isIntegrationTest) { return; } ArcContainer container = Arc.container(); diff --git a/test-framework/common/src/main/java/io/quarkus/test/common/TestScopeManager.java b/test-framework/common/src/main/java/io/quarkus/test/common/TestScopeManager.java index 43301ab991abb..b6904dd850473 100644 --- a/test-framework/common/src/main/java/io/quarkus/test/common/TestScopeManager.java +++ b/test-framework/common/src/main/java/io/quarkus/test/common/TestScopeManager.java @@ -16,15 +16,15 @@ public class TestScopeManager { } } - public static void setup(boolean isNativeImageTest) { + public static void setup(boolean isIntegrationTest) { for (TestScopeSetup i : SCOPE_MANAGERS) { - i.setup(isNativeImageTest); + i.setup(isIntegrationTest); } } - public static void tearDown(boolean isNativeImageTest) { + public static void tearDown(boolean isIntegrationTest) { for (TestScopeSetup i : SCOPE_MANAGERS) { - i.tearDown(isNativeImageTest); + i.tearDown(isIntegrationTest); } } } diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMNewerThan.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMNewerThan.java index ccc876e1d9aaa..05a5a44fbf6a0 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMNewerThan.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMNewerThan.java @@ -11,8 +11,8 @@ * Used to signal that a test class or method should be disabled if the version of GraalVM used to build the native binary * under test was older than the supplied version. * - * This annotation should only be used on a test classes annotated with {@link NativeImageTest} or - * {@link QuarkusIntegrationTest}. If it is used on other test classes, it will have no effect. + * This annotation should only be used on a test classes annotated with {@link QuarkusIntegrationTest}. + * If it is used on other test classes, it will have no effect. */ @Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMNewerThanCondition.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMNewerThanCondition.java index c7a9bbfaf687d..1e22d4dfa8794 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMNewerThanCondition.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMNewerThanCondition.java @@ -16,9 +16,7 @@ public class DisableIfBuiltWithGraalVMNewerThanCondition implements ExecutionCondition { private static final String QUARKUS_INTEGRATION_TEST_NAME = QuarkusIntegrationTest.class.getName(); - private static final String NATIVE_IMAGE_TEST_NAME = NativeImageTest.class.getName(); - private static final Set SUPPORTED_INTEGRATION_TESTS = Set.of(QUARKUS_INTEGRATION_TEST_NAME, - NATIVE_IMAGE_TEST_NAME); + private static final Set SUPPORTED_INTEGRATION_TESTS = Set.of(QUARKUS_INTEGRATION_TEST_NAME); @Override public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMOlderThan.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMOlderThan.java index 2e466f73202f3..711032af12acb 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMOlderThan.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMOlderThan.java @@ -11,8 +11,8 @@ * Used to signal that a test class or method should be disabled if the version of GraalVM used to build the native binary * under test was older than the supplied version. * - * This annotation should only be used on a test classes annotated with {@link NativeImageTest} or - * {@link QuarkusIntegrationTest}. If it is used on other test classes, it will have no effect. + * This annotation should only be used on a test classes annotated with {@link QuarkusIntegrationTest}. + * If it is used on other test classes, it will have no effect. */ @Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMOlderThanCondition.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMOlderThanCondition.java index f5af1f92aa767..805d8222f66db 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMOlderThanCondition.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisableIfBuiltWithGraalVMOlderThanCondition.java @@ -16,9 +16,7 @@ public class DisableIfBuiltWithGraalVMOlderThanCondition implements ExecutionCondition { private static final String QUARKUS_INTEGRATION_TEST_NAME = QuarkusIntegrationTest.class.getName(); - private static final String NATIVE_IMAGE_TEST_NAME = NativeImageTest.class.getName(); - private static final Set SUPPORTED_INTEGRATION_TESTS = Set.of(QUARKUS_INTEGRATION_TEST_NAME, - NATIVE_IMAGE_TEST_NAME); + private static final Set SUPPORTED_INTEGRATION_TESTS = Set.of(QUARKUS_INTEGRATION_TEST_NAME); @Override public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnIntegrationTestCondition.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnIntegrationTestCondition.java index 586ddcb394a75..80a1cdf4c38dc 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnIntegrationTestCondition.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnIntegrationTestCondition.java @@ -13,6 +13,7 @@ import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; +import java.util.Objects; import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Function; @@ -58,16 +59,7 @@ public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext con } return false; })); - if (disabledOnIntegrationTestReason != null) { - return disabledOnIntegrationTestReason; - } - // support DisabledOnNativeImage for backward compatibility - ConditionEvaluationResult disabledOnNativeImageReason = check(context, element, DisabledOnNativeImage.class, - DisabledOnNativeImage::value, null); - if (disabledOnNativeImageReason != null) { - return disabledOnNativeImageReason; - } - return ENABLED; + return Objects.requireNonNullElse(disabledOnIntegrationTestReason, ENABLED); } private ConditionEvaluationResult check(ExtensionContext context, Optional element, diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnNativeImage.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnNativeImage.java deleted file mode 100644 index 2ee78feaa4e9a..0000000000000 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnNativeImage.java +++ /dev/null @@ -1,42 +0,0 @@ -package io.quarkus.test.junit; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * {@code @DisabledOnNativeImage} is used to signal that the annotated test class or - * test method for native images is currently disabled and should not be executed. - * - *

- * {@code @DisabledOnNativeImage} may optionally be declared with a {@linkplain #value - * reason} to document why the annotated test class or test method is disabled. - * - *

- * When applied at the class level, all test methods within that class - * are automatically disabled during the native image tests as well. - * - *

- * When applied at the method level, the presence of this annotation does not - * prevent the test class from being instantiated. Rather, it prevents the - * execution of the test method and method-level lifecycle callbacks such as - * {@code @BeforeEach} methods, {@code @AfterEach} methods, and corresponding - * extension APIs. - * - * @deprecated Use {@link @DisabledOnIntegrationTest} instead. - * - */ -@Target({ ElementType.TYPE, ElementType.METHOD }) -@Retention(RetentionPolicy.RUNTIME) -@Documented -@Inherited -@Deprecated(since = "2.9.0.Final", forRemoval = true) -public @interface DisabledOnNativeImage { - /** - * Reason for disabling this test - */ - public String value() default ""; -} diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnNativeImageCondition.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnNativeImageCondition.java deleted file mode 100644 index d3f8aaf06c018..0000000000000 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/DisabledOnNativeImageCondition.java +++ /dev/null @@ -1,39 +0,0 @@ -package io.quarkus.test.junit; - -import static org.junit.platform.commons.util.AnnotationUtils.findAnnotation; - -import java.lang.reflect.AnnotatedElement; -import java.util.Optional; - -import org.junit.jupiter.api.extension.ConditionEvaluationResult; -import org.junit.jupiter.api.extension.ExecutionCondition; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.platform.commons.util.StringUtils; - -public class DisabledOnNativeImageCondition implements ExecutionCondition { - - private static final ConditionEvaluationResult ENABLED = ConditionEvaluationResult - .enabled("@DisabledOnNativeImage is not present"); - - /** - * Containers/tests are disabled if {@code @DisabledOnNativeImage} is present on the test - * class or method and we're running on a native image. - */ - @Override - public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { - Optional element = context.getElement(); - Optional disabled = findAnnotation(element, DisabledOnNativeImage.class); - if (disabled.isPresent()) { - // Cannot use ExtensionState here because this condition needs to be evaluated before QuarkusTestExtension - boolean nativeImage = findAnnotation(context.getTestClass(), NativeImageTest.class).isPresent(); - if (nativeImage) { - String reason = disabled.map(DisabledOnNativeImage::value) - .filter(StringUtils::isNotBlank) - .orElseGet(() -> element.get() + " is @DisabledOnNativeImage"); - return ConditionEvaluationResult.disabled(reason); - } - } - return ENABLED; - } - -} diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/IntegrationTestUtil.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/IntegrationTestUtil.java index be8c2323e5069..03887b8506485 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/IntegrationTestUtil.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/IntegrationTestUtil.java @@ -75,13 +75,13 @@ static void ensureNoInjectAnnotationIsUsed(Class testClass) { for (Field field : current.getDeclaredFields()) { if (field.getAnnotation(Inject.class) != null) { throw new JUnitException( - "@Inject is not supported in @NativeImageTest and @QuarkusIntegrationTest tests. Offending field is " + "@Inject is not supported in @QuarkusIntegrationTest tests. Offending field is " + field.getDeclaringClass().getTypeName() + "." + field.getName()); } if (field.getAnnotation(ConfigProperty.class) != null) { throw new JUnitException( - "@ConfigProperty is not supported in @NativeImageTest and @QuarkusIntegrationTest tests. Offending field is " + "@ConfigProperty is not supported in @QuarkusIntegrationTest tests. Offending field is " + field.getDeclaringClass().getTypeName() + "." + field.getName()); } diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/NativeImageTest.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/NativeImageTest.java deleted file mode 100644 index 94ab265fa070e..0000000000000 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/NativeImageTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package io.quarkus.test.junit; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.junit.jupiter.api.extension.ExtendWith; - -/** - * Annotation that indicates that this test should be run using a native image, - * rather than in the JVM. - * - * The standard usage pattern is expected to be a base test class that runs the - * tests using the JVM version of Quarkus, with a subclass that extends the base - * test and is annotated with this annotation to perform the same checks against - * the native image. - * - * Note that it is not possible to mix JVM and native image tests in the same test - * run, it is expected that the JVM tests will be standard unit tests that are - * executed by surefire, while the native image tests will be integration tests - * executed by failsafe. - * This also means that injection of beans into a test class using {@code @Inject} is not supported - * in native image tests. Such injection is only possible in tests injected with - * {@link @QuarkusTest} so the test class structure must take this into account. - * - * @deprecated Use {@link @QuarkusIntegrationTest} instead. - */ -@Target(ElementType.TYPE) -@ExtendWith({ DisabledOnNativeImageCondition.class, QuarkusTestExtension.class, NativeTestExtension.class }) -@Retention(RetentionPolicy.RUNTIME) -@Deprecated(since = "2.8.0.Final", forRemoval = true) -public @interface NativeImageTest { -} diff --git a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusTestExtension.java b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusTestExtension.java index e64a8ace36a76..66559dbb0800a 100644 --- a/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusTestExtension.java +++ b/test-framework/junit5/src/main/java/io/quarkus/test/junit/QuarkusTestExtension.java @@ -557,11 +557,11 @@ public void afterEach(ExtensionContext context) throws Exception { private boolean isNativeOrIntegrationTest(Class clazz) { for (Class i : currentTestClassStack) { - if (i.isAnnotationPresent(NativeImageTest.class) || i.isAnnotationPresent(QuarkusIntegrationTest.class)) { + if (i.isAnnotationPresent(QuarkusIntegrationTest.class)) { return true; } } - if (clazz.isAnnotationPresent(NativeImageTest.class) || clazz.isAnnotationPresent(QuarkusIntegrationTest.class)) { + if (clazz.isAnnotationPresent(QuarkusIntegrationTest.class)) { return true; } return false;