@Target(TYPE) @Retention(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 junit.jupiter.testinstance.lifecycle.default
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.@BeforeAll
and @AfterAll
on interface default
methods.@BeforeAll
and
@AfterAll
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
.
Modifier and Type | Required Element | Description |
---|---|---|
TestInstance.Lifecycle |
value |
The test instance lifecycle mode to use.
|
TestInstance.Lifecycle value