Annotation Interface EnabledForJreRange


@Target({TYPE,METHOD}) @Retention(RUNTIME) @Documented @ExtendWith(org.junit.jupiter.api.condition.EnabledForJreRangeCondition.class) @API(status=STABLE, since="5.6") public @interface EnabledForJreRange
@EnabledForJreRange is used to signal that the annotated test class or test method is only enabled for a specific range of Java Runtime Environment (JRE) versions.

Version ranges can be specified as JRE enum constants via min and max or as integers via minVersion and maxVersion.

When applied at the class level, all test methods within that class will be enabled on the same specified JRE versions.

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 prevents execution of the test method and method-level lifecycle callbacks such as @BeforeEach methods, @AfterEach methods, and corresponding extension APIs. However, that does not prevent the test class from being instantiated, and it does not prevent the execution of class-level lifecycle callbacks such as @BeforeAll methods, @AfterAll 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.

Warning

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.

Since:
5.6
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Custom reason to provide if the test or container is disabled.
    Java Runtime Environment version which is used as the upper boundary for the version range that determines if the annotated class or method should be enabled, specified as a JRE enum constant.
    int
    Java Runtime Environment version which is used as the upper boundary for the version range that determines if the annotated class or method should be enabled, specified as an integer.
    Java Runtime Environment version which is used as the lower boundary for the version range that determines if the annotated class or method should be enabled, specified as a JRE enum constant.
    int
    Java Runtime Environment version which is used as the lower boundary for the version range that determines if the annotated class or method should be enabled, specified as an integer.
  • Element Details

    • min

      JRE min
      Java Runtime Environment version which is used as the lower boundary for the version range that determines if the annotated class or method should be enabled, specified as a JRE enum constant.

      If a JRE enum constant does not exist for a particular JRE version, you can specify the minimum version via minVersion instead.

      Defaults to UNDEFINED, which will be interpreted as JAVA_8 if the minVersion is not set.

      See Also:
      Default:
      UNDEFINED
    • max

      JRE max
      Java Runtime Environment version which is used as the upper boundary for the version range that determines if the annotated class or method should be enabled, specified as a JRE enum constant.

      If a JRE enum constant does not exist for a particular JRE version, you can specify the maximum version via maxVersion instead.

      Defaults to UNDEFINED, which will be interpreted as OTHER if the maxVersion is not set.

      See Also:
      Default:
      UNDEFINED
    • minVersion

      @API(status=EXPERIMENTAL, since="5.12") int minVersion
      Java Runtime Environment version which is used as the lower boundary for the version range that determines if the annotated class or method should be enabled, specified as an integer.

      If a JRE enum constant exists for the particular JRE version, you can specify the minimum version via min instead.

      Defaults to -1 to signal that min should be used instead.

      Since:
      5.12
      See Also:
      Default:
      -1
    • maxVersion

      @API(status=EXPERIMENTAL, since="5.12") int maxVersion
      Java Runtime Environment version which is used as the upper boundary for the version range that determines if the annotated class or method should be enabled, specified as an integer.

      If a JRE enum constant exists for the particular JRE version, you can specify the maximum version via max instead.

      Defaults to -1 to signal that max should be used instead.

      Since:
      5.12
      See Also:
      Default:
      -1
    • disabledReason

      @API(status=STABLE, since="5.7") String disabledReason
      Custom reason to provide if the test or container is disabled.

      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.

      Since:
      5.7
      Default:
      ""