Annotation Interface TestMethodOrder

@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited @API(status=STABLE, since="5.7") 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.

As an alternative to @TestMethodOrder, a global MethodOrderer can be configured for the entire test suite via the "junit.jupiter.testmethod.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 test methods are executed in the order specified via the @Order annotation.

 class OrderedTests {

     void nullValues() {}

     void emptyValues() {}

     void validValues() {}
See Also: