Как запустить JUnit5 и JUnit4 в одной сборке Gradle?

Я прочитал ответ о Maven, но мне было интересно, как я смогу выполнить эту задачу в Gradle - Выполнение тестов JUnit 4 и JUnit 5 в одной сборке.

В настоящее время моя сборка Gradle собирает тесты только с: import org.junit.jupiter.api.Test;

Моя проблема в том, что я использую @RunWith, для работы которого требуется JUnit4, но я хочу выполнить его на JUnit5 Vintage Engine.

Как сделать мою сборку такой, чтобы я мог запускать JUnit4 и JUnit5 вместе. Спасибо.

Обновлять: Теперь есть родной Mockito Junit Jupiter для JUnit 5 - https://mvnrepository.com/artifact/org.mockito/mockito-junit-jupiter

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
11
0
5 250
1

Ответы 1

Проект junit5-миграция-градиент демонстрирует, как выполнять тесты на основе JUnit 5 с использованием Gradle. Кроме того, он демонстрирует, что существующие тесты на основе JUnit 4 могут выполняться в том же наборе тестов, что и тесты на основе JUnit Jupiter или любые другие тесты, поддерживаемые на платформе JUnit.

По сути, это сводится к наличию обоих движков, Jupiter и Vintage, на пути к классам среды выполнения:

dependencies {
    testCompile("org.junit.jupiter:junit-jupiter-api:5.2.0")
    testRuntime("org.junit.jupiter:junit-jupiter-engine:5.2.0")
}

dependencies {
    testCompile("junit:junit:4.12")
    testRuntime("org.junit.vintage:junit-vintage-engine:5.2.0")
}

Я считаю, что должно быть больше, чем это - мои тесты JUnit4 все еще не выполняются на ./gradlew clean test.

Viv 12.06.2018 01:56

Не могли бы вы опубликовать дополнительную информацию, например, ваш файл build.gradle, или предоставить ссылку на минимальный образец проекта, который показывает проблему?

Sormuras 12.06.2018 09:17

Вам также необходимо добавить этот пункт в свой build.gradle: test { useJUnitPlatform() } Или, если вы используете Kotlin и имеете build.gradle.kts: tasks.test { useJUnitPlatform() }

Drew Stephens 06.05.2020 15:33

Другие вопросы по теме