@Target(value=TYPE)
@Retention(value=RUNTIME)
@Inherited
@Documented
@API(status=STABLE,
since="5.0")
public @interface TestInstance
@TestInstance is a type-level annotation that is used to configure
the lifecycle of test instances for the annotated
test class or test interface.
If @TestInstance is not explicitly declared on a test class or
on a test interface implemented by a test class, the lifecycle mode will
implicitly default to PER_METHOD. Note, however,
that an explicit lifecycle mode is inherited within a test class
hierarchy. In addition, the default lifecycle mode may be overridden
via the configuration
parameter which can be supplied via the Launcher API, build tools
(e.g., Gradle and Maven), a JVM system property, or the JUnit Platform
configuration file (i.e., a file named junit-platform.properties in
the root of the class path). Consult the User Guide for further information.
Setting the test instance lifecycle mode to PER_CLASS enables the following features.
@BeforeAll and
@AfterAll methods in the test class.@BeforeAll and @AfterAll methods
in @Nested test classes. Beginning with Java 16, @BeforeAll
and @AfterAll methods may be declared as static in
@Nested test classes with either lifecycle mode.@BeforeAll and @AfterAll on interface
default methods.@BeforeAll and @AfterAll
lifecycle methods as well as @MethodSource factory methods in test classes
implemented with the Kotlin programming language.@TestInstance may also be used as a meta-annotation in order to
create a custom composed annotation that inherits the semantics
of @TestInstance.
@Nested| Modifier and Type | Required Element and Description |
|---|---|
TestInstance.Lifecycle |
value
The test instance lifecycle mode to use.
|
public abstract TestInstance.Lifecycle value