@Target(value={TYPE,METHOD})
@Retention(value=RUNTIME)
@Documented
@ExtendWith(value=EnabledOnOsCondition.class)
@API(status=STABLE,
since="5.1")
public @interface EnabledOnOs
@EnabledOnOs is used to signal that the annotated test class or
test method is only enabled on one or more specified
operating systems or one or more specified
architectures.
If operating systems and architectures are specified, the annotated test class or test method is enabled if both conditions apply.
When applied at the class level, all test methods within that class will be enabled on the same specified operating systems, architectures, or the specified combinations of both.
This annotation is not @Inherited.
Consequently, if you wish to apply the same semantics to a subclass, this
annotation must be redeclared on the subclass.
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.
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.1, this annotation can only be declared once on an
AnnotatedElement (i.e., test
interface, test class, or test method). If this annotation is directly
present, indirectly present, or meta-present multiple times on a given
element, only the first such annotation discovered by JUnit will be used;
any additional declarations will be silently ignored. Note, however, that
this annotation may be used in conjunction with other @Enabled* or
@Disabled* annotations in this package.
| Modifier and Type | Optional Element and Description |
|---|---|
java.lang.String[] |
architectures
Architectures on which the annotated class or method should be enabled.
|
java.lang.String |
disabledReason
Custom reason to provide if the test or container is disabled.
|
OS[] |
value
Operating systems on which the annotated class or method should be
enabled.
|
@API(status=STABLE,
since="5.9")
public abstract java.lang.String[] architectures
Each architecture will be compared to the value returned from
System.getProperty("os.arch"), ignoring case.
@API(status=STABLE,
since="5.7")
public abstract java.lang.String disabledReason
If a custom reason is supplied, it will be combined with the default reason for this annotation. If a custom reason is not supplied, the default reason will be used.