Annotation Type EnabledInNativeImage


  • @Target({TYPE,METHOD})
    @Retention(RUNTIME)
    @Documented
    @EnabledIfSystemProperty(named="org.graalvm.nativeimage.imagecode",
                             matches=".+",
                             disabledReason="Not currently executing within a GraalVM native image")
    @API(status=STABLE,
         since="5.9.1")
    public @interface EnabledInNativeImage
    @EnabledInNativeImage is used to signal that the annotated test class or test method is only enabled when executing within a GraalVM native image.

    When applied at the class level, all test methods within that class will be enabled within a native image.

    This annotation is not @Inherited. Consequently, if you wish to apply the same semantics to a subclass, this annotation must be redeclared on the subclass.

    If a test method is disabled via this annotation, that 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 @BeforeEach methods, @AfterEach methods, and corresponding extension APIs.

    This annotation may be used as a meta-annotation in order to create a custom composed annotation that inherits the semantics of this annotation.

    Technical Details

    JUnit detects whether tests are executing within a GraalVM native image by checking for the presence of the org.graalvm.nativeimage.imagecode system property (see org.graalvm.nativeimage.ImageInfo for details). The GraalVM compiler sets the property to buildtime while compiling a native image; the property is set to runtime while a native image is executing; and the Gradle and Maven plug-ins in the GraalVM Native Build Tools project set the property to agent while executing tests with the GraalVM tracing agent.

    Since:
    5.9.1
    See Also:
    EnabledIf, DisabledIf, EnabledOnOs, DisabledOnOs, EnabledOnJre, DisabledOnJre, EnabledForJreRange, DisabledForJreRange, DisabledInNativeImage, EnabledIfSystemProperty, DisabledIfSystemProperty, EnabledIfEnvironmentVariable, DisabledIfEnvironmentVariable, Disabled