Annotation Interface DisabledInNativeImage
@DisabledInNativeImage
is used to signal that the annotated test class
or test method is only disabled when executing within a GraalVM native
image.
When applied at the class level, all test methods within that class will be disabled 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.