Annotation Interface TestClassOrder


@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited @API(status=STABLE, since="5.10") public @interface TestClassOrder
@TestClassOrder is a type-level annotation that is used to configure a ClassOrderer for the @Nested test classes of the annotated test class.

If @TestClassOrder is not explicitly declared on a test class, inherited from a parent class, declared on a test interface implemented by a test class, or inherited from an enclosing class, @Nested test classes will be executed in arbitrary order.

As an alternative to @TestClassOrder, a global ClassOrderer can be configured for the entire test suite via the "junit.jupiter.testclass.order.default" configuration parameter. See the User Guide for details. Note, however, that a @TestClassOrder declaration always overrides a global ClassOrderer.

Example Usage

The following demonstrates how to guarantee that @Nested test classes are executed in the order specified via the @Order annotation.

 @TestClassOrder(ClassOrderer.OrderAnnotation.class)
 class OrderedNestedTests {

     @Nested
     @Order(1)
     class PrimaryTests {
         // @Test methods ...
     }

     @Nested
     @Order(2)
     class SecondaryTests {
         // @Test methods ...
     }
 }
 
Since:
5.8
See Also: