Порядок выполнения тестов в 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, то она проходит проверку, но аннотации не работают.