@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, declared on a test interface implemented by
a test class, or inherited from an enclosing
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.
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() {}
}
Using a MethodOrderer disables parallel execution unless the test
class or test method is annotated with
@Execution(CONCURRENT).
MethodOrderer, TestClassOrder
| Modifier and Type | Method and Description |
|---|---|
| public Class |
| value | back to summary |
|---|---|
| public Class The | |