注释类型 EnabledIf
@Target({TYPE,METHOD}) @Retention(RUNTIME) @Documented @ExtendWith(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 suppliedexpression()
evaluates totrue
.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 {}
- 从以下版本开始:
- 5.0
- 作者:
- Sam Brannen
- 另请参阅:
SpringExtension
,DisabledIf
,Disabled
可选元素概要
可选元素 修饰符和类型 可选元素 说明 String
expression
The expression that will be evaluated to determine if the annotated test class or test method is enabled.boolean
loadContext
Whether theApplicationContext
associated with the current test should be eagerly loaded in order to evaluate theexpression()
.String
reason
The reason this test is enabled.String
value
元素详细资料
value
@AliasFor("expression") String value
- 另请参阅:
expression()
- 默认值:
- ""
expression
@AliasFor("value") String expression
The expression that will be evaluated to determine if the annotated test class or test method is enabled.If the expression evaluates to
Boolean.TRUE
or aString
equal to"true"
(ignoring case), the test will be enabled.Expressions can be any of the following.
- Spring Expression Language (SpEL) expression — for example:
@EnabledIf("#{systemProperties['os.name'].toLowerCase().contains('mac')}")
- Placeholder for a property available in the Spring
Environment
— for example:@EnabledIf("${smoke.tests.enabled}")
- Text literal — for example:
@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.- 另请参阅:
reason()
,loadContext()
,value()
- 默认值:
- ""
- Spring Expression Language (SpEL) expression — for example:
reason
String reason
The reason this test is enabled.- 另请参阅:
expression()
- 默认值:
- ""
loadContext
boolean loadContext
Whether theApplicationContext
associated with the current test should be eagerly loaded in order to evaluate theexpression()
.Defaults to
false
so that test application contexts are not eagerly loaded unnecessarily. If an expression is based solely on system properties or environment variables or does not interact with beans in the test's application context, there is no need to load the context prematurely since doing so would be a waste of time if the test ends up being disabled.- 另请参阅:
expression()
- 默认值:
- false