junit test ordering code example

Example 1: ordering test in junit

By adding @TestMethodOrder annotation
on top of class and 
than @Order tag on each test
with giving them number 

// these are all available option for ordering your tests
//@TestMethodOrder(OrderAnnotation.class)
//@TestMethodOrder(Random.class)
//@TestMethodOrder(MethodName.class) // default options

For Example :

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class TestOrderingInJunit5 {

    @Order(3)
    @DisplayName("3. Test A method")
    @Test
    public void testA(){
        System.out.println("running test A");
    }
    @Order(1)
    @DisplayName("1. Test C method")
    @Test
    public void testC(){
        System.out.println("running test C");
    }
    @Order(4)
    @DisplayName("4. Test D method")
    @Test
    public void testD(){
        System.out.println("running test D");
    }
    @Order(2)
    @DisplayName("2. Test B method")
    @Test
    public void testB(){
        System.out.println("running test B");
    }
    
    
    In this case it will print 
    1. Test C
    2. Test B
    3. Test A
    4. Test D

Example 2: junit test ordering

By adding @TestMethodOrder annotation
on top of class and 
than @Order tag on each test
with giving them number 

// these are all available option for ordering your tests
//@TestMethodOrder(OrderAnnotation.class)
//@TestMethodOrder(Random.class) //randomly runs
//@TestMethodOrder(MethodName.class) // default options

For Example :

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)

    @Order(3)
    @DisplayName("3. Test A method")
    @Test
    public void testA(){
        System.out.println("running test A");
    }
    @Order(1)
    @DisplayName("1. Test C method")
    @Test
    public void testC(){
        System.out.println("running test C");
    }
    @Order(4)
    @DisplayName("4. Test D method")
    @Test
    public void testD(){
        System.out.println("running test D");
    }
    @Order(2)
    @DisplayName("2. Test B method")
    @Test
    public void testB(){
        System.out.println("running test B");
    }
    
    
    In this case it will print 
    1. Test C
    2. Test B
    3. Test A
    4. Test D

Example 3: junit testcase run in order

@TestMethodOrder(OrderAnnotation.class)
public class OrderAnnotationUnitTest {
    private static StringBuilder output = new StringBuilder("");
     
    @Test
    @Order(1)    
    public void firstTest() {
        output.append("a");
    }
     
    @Test
    @Order(2)    
    public void secondTest() {
        output.append("b");
    }
  
    @Test
    @Order(3)    
    public void thirdTest() {
        output.append("c");
    }
  
    @AfterAll
    public static void assertOutput() {
        assertEquals(output.toString(), "abc");
    }
}

Tags:

Misc Example