2017-09-09 2 views
1

Ausführen der IDEA-IDE Ich möchte eine größere Abhängigkeit für die jUnit v5 hinzufügen.So verwenden Sie jUnit 5 mit Gradle

Hier ist meine build.gradle Datei, ich habe this Antwort als Leitfaden verwendet.

apply plugin: 'java' 
sourceCompatibility = 1.8 

repositories { mavenCentral() } 
apply plugin: 'org.junit.platform.gradle.plugin' 

dependencies { 
    testCompile 'junit:junit:4.12' 
    compile 'junit:junit:4.12' 

    testRuntime("org.junit.vintage:junit-vintage-engine:4.12.0-M4") 

    testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M4") 
    testRuntime("org.junit.jupiter:junit-jupiter-engine:5.0.0-M4") 

    // Enable use of the JUnitPlatform Runner within the IDE 
    testCompile("org.junit.platform:junit-platform-runner:1.0.0-M4") 
    compile ("org.junit.jupiter:junit-jupiter-api:5.0.0-M4") 
} 

sourceSets { 
    main { 
     java { 
      srcDir 'src' 
     } 
    } 
} 

junitPlatform { 
    details 'tree' 
} 

Das Problem hier ist, dass die jUnit4-Annotationen durch Import aufgelöst werden, aber alle v5-Annotationen nicht aufgelöst werden.

Ein Beispiel:

@ParameterizedTest 
public void testExample() { 
    // My annotations is not resolved 
} 

Was ist der richtige Weg, um eine jUnit5 Abhängigkeit mit gradle hinzufügen?

BEARBEITEN Ich habe ein neues Java-Java-Projekt von Grund auf neu gestartet, um auf den Grund zu kommen.

Hier ist meine aktuelle build.gradle.

group 'com.iay0361' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 
sourceCompatibility = 1.8 

repositories { mavenCentral() } 
apply plugin: 'org.junit.platform.gradle.plugin' 

dependencies { 
    testCompile group: 'org.junit.vintage', name: 'junit-vintage-engine', version: '4.12.0-RC3' 

    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.0-RC3' 
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.0.0-RC3' 
    compile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.0.0-RC3' 

    testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.0.0-RC3' 
} 

sourceSets { 
    main { 
     java { 
      srcDir 'src' 
     } 
    } 
} 

junitPlatform { 
    details 'tree' 
} 

Ich schrieb die @Test Annotation in einer neuen Klasse Datei im Test nach dem es mich gebeten, „die‚jUnit5‘hinzufügen

enter image description here

was ich auch tat, und diesmal ausgewählt Classpath . das Kopieren ‚jUnit5‘ Bibliotheken ... statt den IDEA Vertreiber von mit

Nun fügte es diese Dateien in Modul:

enter image description here

Die Datei ist immer RC2 aber in build.gradle ist es RC3. Es gibt auch keine jUnit Gläser in "Externe Bibliothek" Verzeichnis

Was ich vermisse, ist das Problem immer noch, dass die IDE einige jUnit5 Annotationen wie @ ParamiterizedTest nicht auflösen kann.

+0

Stopp gradle verwenden. Es ist totaler Mist. –

+0

Es mag sein, aber ich habe genau das gleiche Problem mit Maven-Projekt, wenn ich die org.junit junit5-api 5.0.0-ALPHA Um pom.xml – KasparTr

Antwort

2

Here ist ein schnelles Beispiel zur Konfiguration von Gradle mit Junit5. Entfernen Sie in Ihren Abhängigkeiten die Kompilierungsanweisung für die junit:4.12 Artefaktverison.

// If you also want to support JUnit 3 and JUnit 4 tests 
testCompile("junit:junit:4.12") 

Im buildscript() Verfahren sind dies:

buildscript { 
    repositories { mavenCentral() } 
    dependencies { classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-RC3' } 
} 
+0

hinzufügen Ich habe genau das. Die IDE hat mich sogar gebeten, die jUnit5-Abhängigkeit dem Klassenpfad hinzuzufügen, den ich akzeptiert habe. Danach importierte es org.junit.jupiter.api.Test; @ParameterizedTest ist immer noch nicht aufgelöst. Ist es vielleicht die Anmerkung? – KasparTr

+0

@KasparTr hast du 'import.org.junit.jupiter.params.ParameterizedTest' in deiner Klasse?Wenn ja, welchen Fehler haben Sie? – nullpointer

+0

der Fehler ist: Kann Symbol 'Parameter' für die Importanweisung nicht auflösen. – KasparTr

Verwandte Themen