Annotation Type TestMethodOrder


  • @Target(TYPE)
    @Retention(RUNTIME)
    @Documented
    @Inherited
    @API(status=EXPERIMENTAL,
         since="5.4")
    public @interface TestMethodOrder
    @TestMethodOrder is a type-level annotation that is used to configure a MethodOrderer for the test methods of the annotated test class or test interface.

    In this context, the term "test method" refers to any method annotated with @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, or @TestTemplate.

    If @TestMethodOrder is not explicitly declared on a test class, inherited from a parent class, or declared on a test interface implemented by a test class, test methods will be ordered using a default algorithm that is deterministic but intentionally nonobvious.

    Example Usage

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

     @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
     class OrderedTests {
    
         @Test
         @Order(1)
         void nullValues() {}
    
         @Test
         @Order(2)
         void emptyValues() {}
    
         @Test
         @Order(3)
         void validValues() {}
     }
     
    Since:
    5.4
    See Also:
    MethodOrderer