Порядок выполнения тестов в Junit не соответствует заданному через @Order

Переписал тесты на Junit5 (ранее было Junit4 и там порядка, если я правильно понял нет совсем). Но всё равно Order игнорируется. В классе теперь описание задано в таком виде:

import org.junit.jupiter.api.*;
import org.openqa.selenium.By;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.net.URL;
import java.util.concurrent.TimeUnit;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class UserStoryTest {
    
@BeforeEach

@Test
@Order(1)

@Test
@Order(2)
...
@Test
@Order(8)

@AfterEach

результат выполнения в совершенно ином порядке


Ответы (2 шт):

Автор решения: Темка тоже

Если ты используешь Junit5, то используй @TestMethodOrder. Пример:

import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;

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

    @Test
    @Order(1)
    public  void testA(){
        System.out.println("1. test A");
    }

    @Test
    @Order(3)
    public  void testB(){
        System.out.println("3. test B");
    }

    @Test
    @Order(2)
    public  void testC(){
        System.out.println("2. test C");
    }

}

Результат работы этого теста:


1. test A


2. test C


3. test B
→ Ссылка
Автор решения: Ilya

Дополнительно. Для того, чтобы заработал порядок требуется верное объявление в pom.xml:

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.4.0</version>
        </dependency>

Если указать зависимость на api, то она проходит проверку, но аннотации не работают.

→ Ссылка