JUnit - Exécuter le test dans un ordre particulier

JUnit - Exécuter le test dans un ordre particulier

Dans JUnit, vous pouvez utiliser@FixMethodOrder(MethodSorters.NAME_ASCENDING) pour exécuter les méthodes de test par nom de méthode, dans l'ordre lexicographique.

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));

    }

}

En sortie, les méthodes de test ci-dessus s'exécuteront dans l'ordre suivant:

test1
test2
testA
testB
testC

junit-execution-order

Note
JUnit fournit uniquement le nom de la méthode comme ordre d'exécution, et je pense que l'équipe JUnit n'a pas l'intention de développer d'autres fonctionnalités pour prendre en charge l'ordre d'exécution des tests, car le test unitaire doit être exécuté de manière isolée et en TOUT ordre d'exécution.

Si vous avez vraiment besoin de l'ordre d'exécution du test, essayezTestNG Dependency Test