Обновление с JUnit 4 до JUnit 5 в Intellij с помощью Gradle

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

Я пытаюсь настроить свой build.gradle следующим образом:

apply plugin: 'java'

compileTestJava {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}

repositories {
    mavenCentral()
}

dependencies {
    testCompile("junit:junit:4.12")
    testCompile 'org.junit.jupiter:junit-jupiter-api:5.0.0-M2'
    testRuntime("org.junit.vintage:junit-vintage-engine:4.12.0-M2")
    testRuntime 'org.junit.jupiter:junit-jupiter-engine:5.0.0-M2'
}

Старый тест все еще работает, но Intellij не распознал новый тест JUnit 5, такой как этот:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class JUnit5Test {
    @Test
    void test() {
        assertTrue(true);
    }
}

Я использую Intellij 2016.2 с Gradle 2.9.


person Thermech    schedule 25.07.2016    source источник
comment
Idea 2016.2 теперь поддерживает JUnit 5. пожалуйста. см. stackoverflow.com /вопросы/38293901/. Надеюсь помочь вам.   -  person walsh    schedule 26.07.2016
comment
см. stackoverflow.com/questions/38576108/   -  person mmerdes    schedule 26.07.2016
comment
Мне это не поможет. Я хочу знать, как обновить, сохраняя при этом совместимость с ретро. Кроме того, он поддерживается, но на данный момент он не очень хорошо работает, он все еще схематичен.   -  person Thermech    schedule 27.07.2016


Ответы (2)


Начиная с версии 4.6 для Gradle плагины больше не нужны.

Gradle изначально поддерживает Junit5:

dependencies {       
    testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion"
    testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion"

    testRuntimeOnly "org.junit.vintage:junit-vintage-engine:$junitVersion"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion"
}

test {
    useJUnitPlatform {
        includeEngines 'junit-jupiter', 'junit-vintage'
    }
}
person LazerBanana    schedule 05.03.2018

В настоящее время Intellij IDEA поддерживает JUnit5.

Взгляните на хорошую статью об интеграции JUnit5 с IDEA: Использование JUnit 5 в IntelliJ IDEA

person Andrii Abramov    schedule 06.01.2017