Junit5 - Юпитер, все тесты @BeforeAll @AfterAll не работает - PullRequest
1 голос
/ 19 апреля 2019

Методы до и после не работают в JUnitPlatform.

Код ниже.

import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectClasses;
import org.junit.runner.RunWith;

@RunWith(JUnitPlatform.class)
@SelectClasses({
        MyControllerTest.class
})
public class AdminAppTest {

    @BeforeAll
    public static void setUp() {
        System.out.println("setting up");
    }

    @AfterAll
    public static void tearDown() {
        System.out.println("tearing down");
    }
}

Я просто хочу запустить методы до и после.

Спасибо

Ответы [ 2 ]

1 голос
/ 20 апреля 2019

Я могу привести JUnit 5 советы по миграции :

@Before и @After больше не существуют; используйте @BeforeEach и @AfterEach вместо.

@BeforeClass и @AfterClass больше не существуют; используйте взамен @BeforeAll и @AfterAll.

Но эти аннотации следует использовать в вашем тестовом классе. Методы в вашем наборе классов не будут вызываться таким образом. И вам следует помнить о том, что сьюты и JUnit 5 все еще работают (см. Выпуск 744 ).

0 голосов
/ 09 июля 2019

Вы можете проверить, что org.junit.jupiter: junit-jupiter-engine находится в вашем classpath .

Однако, последние версии инструментов сборки (Maven с верным плагином, Gradle, Eclipse, IntelliJ и т. Д.) Поддерживают junit-platform . Поэтому вам не нужно использовать JUnit4 с обратно совместимым раннером.

Обычно вы можете быть в следующих случаях:

  • создание нового проекта, и в этом случае вы можете начать напрямую, используя только JUnit-Jupiter (и без JUnit4 в вашем пути к классам)

  • перенос проекта из JUnit4 в JUnit5. Здесь вы захотите иметь два движка: JUnit-Vintage, который охватывает ретро-совместимость для существующих тестов с использованием JUnit4 API, и JUnit-Jupiter, которые предлагают большую гибкость, включая состав расширений (с функциями Spring, Mockito и параметризованными тестами одновременно время)

Использование бегуна JUnit4 для запуска тестов JUnit-Jupiter на самом деле является угловым случаем, когда вы ограничены средой (инструментом сборки и / или IDE), которую вы не можете изменить.

Для более подробной информации, примеры проектов доступны командой JUnit:

Надеюсь, это поможет!

...