2016-07-10 10 views
11

Ich versuche gerade Gradle und jUnit5 gerade jetzt. Alles funktioniert gut, außer dass ich keinen spezifischen jUnit-Test ausführen kann. Die Option "Run SampleTest" wird nicht angezeigt, wenn ich mit der rechten Maustaste auf eine Testklasse klicke.Gradle Projekt läuft jUnit 5 Tests in IntelliJ

Ich habe die neueste Version von IntelliJ (2016.1.3) Ultimate. Hier ist meine build.gradle Datei:

repositories { 
    mavenCentral() 
} 

apply plugin: 'java' 

version = '1.0.0-SNAPSHOT' 

jar { 
    baseName = 'test-project' 
} 

dependencies { 
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.0-M1' 
} 

Die Projektstruktur ist der Standard ein (wie in Maven). Und hier ist ein Beispiel für einen Test:

package com.test; 

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

public class SampleTest { 
    @Test public void sampleTest() { 
    int test = 1; 
    Assertions.assertTrue(test == 1); 
    } 
} 

Was fehlt mir?

EDIT:

Es scheint, dass Gradle ist mein Test entweder nicht richtig erfasst. Wenn ich zu build/reports/tests/index.html gehe, zeigt es 0 Test an.

FINAL EDIT:

Nach Antwort des @ dunny, hier ist das, was ich tat alles funktioniert. Ich änderte meine build.gradle-Datei wie folgt:

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

repositories { 
    mavenCentral() 
} 

apply plugin: 'java' 
apply plugin: 'org.junit.platform.gradle.plugin' 

version = '1.0.0-SNAPSHOT' 

jar { 
    baseName = 'test-project' 
} 

dependencies { 
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.0-M1' 
    testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: '1.0.0-M1' 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
    testRuntime group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.0.0-M1' 
} 

test { 
    testLogging { 
     events 'started', 'passed' 
    } 
} 

In IntelliJ, ich öffnete die Gradle Fenster und klickte auf den „refresh alle gradle Projekte“ klicken, um die Bibliotheken zu aktualisieren.

Dann in meiner Testklasse, fügte ich @RunWith(JUnitPlatform.class) oben auf die Klassendeklaration.

Und wenn ich einen gradle build tun, sind die Ergebnisse finden Sie hier: build\test-results\junit-platform\TEST-junit-jupiter.xml

Antwort

9

IntelliJ 2016.01.03 keine Unterstützung für Tests JUnit 5 hat. Sie können jedoch die Annotation @RunWith(JUnitPlatform.class) hinzufügen, die Ihren Test in einem JUnit 4-Kompatibilitätsmodus ausführt (Sie können weiterhin alle JUnit 5-Funktionen verwenden). Weitere Informationen finden Sie unter http://junit.org/junit5/docs/current/user-guide/#running-tests-junit-platform-runner.

Für Gradle benötigen Sie den Gradle JUnit 5 Plugin gehören die Unterstützung zu aktivieren:

buildscript { 
    repositories { 
     mavenCentral() 
     // The following is only necessary if you want to use SNAPSHOT releases. 
     // maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } 
    } 
    dependencies { 
     classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M1' 
    } 
} 

apply plugin: 'org.junit.platform.gradle.plugin' 

http://junit.org/junit5/docs/current/user-guide/#running-tests-build

+0

Vielen Dank! Das hat den Trick gemacht. –

+2

IntelliJ 2016.2 unterstützt jetzt JUnit5. Verwenden Sie einfach die build.gradle-Datei, die in der Frage von @ Jean-FrançoisBeauchef als Lösung bearbeitet wurde. –

0

Sie zu run your tests with the JUnit 4 runner haben Siehe, da IntelliJ 2016.01.03 nicht JUnit 5 Test-Runner hat .

Wenn Sie von dem in der Dokumentation pom.xml verknüpften Beispiel https://github.com/junit-team/junit5-samples/blob/r5.0.0-M1/junit5-maven-consumer/pom.xml ausgehen, führen Sie die folgenden zwei Dinge aus.

eine weitere hinzufügen Abhängigkeit

<dependency> 
     <groupId>org.junit.platform</groupId> 
     <artifactId>junit-platform-runner</artifactId> 
     <version>${junit.platform.version}</version> 
    </dependency> 

dann machen Ihre Testklasse öffentlichen und mit Anmerkungen versehen es mit @RunWith(JUnitPlatform.class).

Ihre IDE erkennt die Klasse nun als Test und bietet Integration.

+0

Danke, aber alles wurde schon von dunni gesagt, außer dem Teil pom.xml, aber ich benutze Maven nicht. Ich benutze Gradle. Danke trotzdem. –

+0

@Jean und machen die Testklasse öffentlich. JUnit5 kann ohne es arbeiten, JUnit4 nicht. Die Abhängigkeitsdeklaration in Gradle-Syntax zu ändern, sollte für einen Gradle-Benutzer trivial sein. – user7610

+0

Aber meine Testklasse ist öffentlich? –

13

Die neueste Idea 2016.2 unterstützt jetzt JUnit 5 Framework.Sie können JUnit5 test ohne junit-gradle-plugin direkt ausführen. Bitte sehen Sie WHAT'S NEW IN INTELLIJ IDEA. Nachdem Sie Ihre Idee auf diese neue Version aktualisiert haben, können Sie ein Google-Projekt erstellen und die folgenden Schritte ausführen, um zu testen, wie der JUnit 5-Test ausgeführt wird.

  • build.gradle

    apply plugin: 'java' 
    
    compileTestJava { 
        sourceCompatibility = 1.8 
        targetCompatibility = 1.8 
    } 
    
    repositories { 
        mavenCentral() 
    } 
    
    dependencies { 
        testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M1") 
        testRuntime("org.junit.vintage:junit-vintage-engine:4.12.0-M1") 
        //NOTE: if you replaced above testRuntime dependency with following 
        //testRuntime("org.junit.jupiter:junit-jupiter-engine:5.0.0-M1") 
        //this test would fail. 
    } 
    
  • Erstellen Sie eine Klasse FirstJUnit5Test in Ihrem Testquellordner

    import org.junit.jupiter.api.Test; 
    import static org.junit.jupiter.api.Assertions.assertEquals; 
    
    public class FirstJUnit5Test { 
        @Test 
        void myFirstTest() { 
         assertEquals(2, 1 + 1); 
        } 
    } 
    
  • Rechtsklick auf diesen Testklasse im linken Projektfenster und wählen Sie dann " Führen Sie "FirstJUnit5Test" aus. Das Ergebnis wird wie folgt angezeigt: enter image description here
  • Weitere Informationen erhalten Sie unter this project from github.

UPDATE

Für IDEA 2016.03.03 und höher kann die dependencies Konfiguration zu vereinfachen:

Sie
dependencies { 
    testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M3") 
} 
Verwandte Themen