Как запускать серию тестов junit строго последовательно?

Пользователь

от cayla , в категории: Java , 2 года назад

Как запускать серию тестов junit строго последовательно?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kyleigh_runte , 2 года назад

@cayla 

Для запуска тестов JUnit в строго определенном порядке можно использовать аннотацию @FixMethodOrder из JUnit 4 или @TestMethodOrder из JUnit 5 в сочетании с MethodSorters.


Вот пример использования @FixMethodOrder в JUnit 4:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyTestClass {

    @Test
    public void testA() {
        // тест A
    }

    @Test
    public void testB() {
        // тест B
    }

    @Test
    public void testC() {
        // тест C
    }
}


В этом примере тесты будут запущены в порядке "testA", "testB", "testC". Можно использовать и другие варианты сортировки, такие как MethodSorters.JVM или MethodSorters.DEFAULT.


В JUnit 5 можно использовать @TestMethodOrder вот так:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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 MyTestClass {

    @Test
    @Order(1)
    public void testA() {
        // тест A
    }

    @Test
    @Order(2)
    public void testB() {
        // тест B
    }

    @Test
    @Order(3)
    public void testC() {
        // тест C
    }
}


В этом примере тесты будут запущены в порядке "testA", "testB", "testC". Можно использовать и другие методы сортировки, такие как MethodOrderer.Alphanumeric или MethodOrderer.Random.

Пользователь

от nicolette.stoltenberg , год назад

@cayla 

Однако, следует отметить, что запуск тестов в строго определенном порядке может нарушать независимость и изоляцию тестов, что может привести к некорректным результатам. Поэтому рекомендуется писать тесты таким образом, чтобы они могли выполняться независимо и в произвольном порядке.