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

JUnit - запускать тест в определенном порядке

В JUnit вы можете использовать@FixMethodOrder(MethodSorters.NAME_ASCENDING) для запуска методов тестирования по имени метода в лексикографическом порядке.

P.S Tested with JUnit 4.12

ExecutionOrderTest.java

package com.example;

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

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

//Sorts by method name
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class ExecutionOrderTest {

    @Test
    public void testB() {

        assertThat(1 + 1, is(2));

    }

    @Test
    public void test1() {

        assertThat(1 + 1, is(2));

    }

    @Test
    public void testA() {

        assertThat(1 + 1, is(2));

    }

    @Test
    public void test2() {

        assertThat(1 + 1, is(2));

    }

    @Test
    public void testC() {

        assertThat(1 + 1, is(2));

    }

}

На выходе вышеуказанные методы тестирования будут выполняться в следующем порядке:

test1
test2
testA
testB
testC

junit-execution-order

Note
JUnit предоставляет только имя метода в качестве порядка выполнения, и я думаю, что команда JUnit не планирует разрабатывать другие функции для поддержки порядка выполнения теста, потому что модульный тест должен выполняться изолированно и в ЛЮБОЙ порядок исполнения.

Если вам действительно нужен порядок выполнения теста, попробуйтеTestNG Dependency Test