/
Вопросы и ответы
/
Java
/

Как запускать автотесты по порядку java

Как запускать автотесты по порядку java

4 года назад

Человек-Молекула

Ответы

1

Java по умолчанию не гарантирует порядок выполнения тестов. Поэтому рекомендуется делать независимые друг от друга тесты.

Начиная с JUnit 4.11, обеспечить порядок выполнения тестов можно с помощью аннотации @FixMethodOrder.

В качестве параметра в аннотацию можно передать константу из Enum MethodSorters:

DEFAULT - порядок по умолчанию, основанный на hashcode.

JVM - порядок обеспечиваемый JVM, может меняться от запуска к запуску.

NAME_ASCENDING - порядок по возрастанию имени метода.

Пример запуска тестов в порядке названия тестовых методов :

import org.junit.runners.MethodSorters;
import org.junit.FixMethodOrder;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class AppTest {

    @Test
    void test1() {
        // ...
    }

    @Test
    void test2() {
        // ...
    }
}

Кроме того, мы можем протестировать один метод на заданных по порядку входных значениях с помощью параметрических тестов :

class AppTest {
    @ParameterizedTest
    @CsvSource({
            "3, 2, 5, 2",
            "30, 20, 10, 10",
            "1, 12, 7, 1"
    })
    void testMinOfNumbers(int a, int b, int c, int expected) {
        int result = NumberUtils.minOfNumbers(a, b, c);
        assertThat(expected).isEqualTo(result);
    }
}

public class NumberUtils {
    public static int minOfNumbers(int a, int b, int c) {
        int[] arr = {a,b,c};
        Arrays.sort(arr);
        return arr[0];
    }
}

3 года назад

Сергей Якимович