@Target(value={TYPE,METHOD}) @Retention(value=RUNTIME) @Documented @ExtendWith(value=EnabledIfCondition.class) public @interface EnabledIf
@EnabledIf
is used to signal that the annotated test class or test
method is enabled and should be executed if the supplied
expression()
evaluates to true
.
When applied at the class level, all test methods within that class are automatically enabled by default as well.
For basic examples, see the Javadoc for expression()
.
This annotation may be used as a meta-annotation to create
custom composed annotations. For example, a custom
@EnabledOnMac
annotation can be created as follows.
@Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @EnabledIf( expression = "#{systemProperties['os.name'].toLowerCase().contains('mac')}", reason = "Enabled on Mac OS" ) public @interface EnabledOnMac {}
SpringExtension
,
DisabledIf
,
Disabled
Modifier and Type | Optional Element and Description |
---|---|
String |
expression
The expression that will be evaluated to determine if the annotated test
class or test method is enabled.
|
String |
reason
The reason this test is enabled.
|
String |
value
Alias for
expression() ; only intended to be used if an
explicit reason() is not provided. |
@AliasFor(value="expression") public abstract String value
expression()
; only intended to be used if an
explicit reason()
is not provided.expression()
@AliasFor(value="value") public abstract String expression
If the expression evaluates to Boolean.TRUE
or a String
equal to "true"
(ignoring case), the test will be enabled.
Expressions can be any of the following.
@EnabledIf("#{systemProperties['os.name'].toLowerCase().contains('mac')}")
Environment
— for example:
@EnabledIf("${smoke.tests.enabled}")
@EnabledIf("true")
Note, however, that a text literal which is not the result of
dynamic resolution of a property placeholder is of zero practical value
since @EnabledIf("false")
is equivalent to @Disabled
and @EnabledIf("true")
is logically meaningless.
public abstract String reason
expression()