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

Аватар пользователя Сергей Якимович
Сергей Якимович
07 декабря 2022

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];
    }
}
1 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

Тест-драйв

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.