@Target(value={TYPE,METHOD}) @Retention(value=RUNTIME) @Documented @Repeatable(value=EnabledIfEnvironmentVariables.class) @ExtendWith(value=EnabledIfEnvironmentVariableCondition.class) @API(status=STABLE, since="5.1") public @interface EnabledIfEnvironmentVariable
@EnabledIfEnvironmentVariable
is used to signal that the annotated test
class or test method is only enabled if the value of the specified
environment variable matches the specified
regular expression.
When declared at the class level, the result will apply to all test methods within that class as well.
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.
If the specified environment variable is undefined, the annotated class or method will be disabled.
This annotation may be used as a meta-annotation in order to create a custom composed annotation that inherits the semantics of this annotation.
As of JUnit Jupiter 5.6, this annotation is a repeatable annotation. Consequently, this annotation may be declared multiple
times on an AnnotatedElement
(i.e.,
test interface, test class, or test method). Specifically, this annotation will
be found if it is directly present, indirectly present, or meta-present on a
given element.
Modifier and Type | Required Element and Description |
---|---|
java.lang.String |
matches
A regular expression that will be used to match against the retrieved
value of the
named() environment variable. |
java.lang.String |
named
The name of the environment variable to retrieve.
|
public abstract java.lang.String named
System.getenv(String)
public abstract java.lang.String matches
named()
environment variable.String.matches(String)
,
Pattern