In IntelliJ hast Du eine Projektverwaltung. Und im Projektfenster können Ordner markiert sein als Source Ordner oder Test Ordner
Wenn Du sowas hast, dann kannst Du:
- in dem Project Fenster auf einen Ordner (ab dem für Tests markierte Ordner) klicken und "Run all Test" sagen
- Auf eine Klasse innerhalb dieses Ordners klicken und Run all Tests sagen
- Wenn so eine Klasse geöffnet ist, dann kannst Du bei der class Zeile auf die grünen Pfeile klicken um alle Tests der Klasse zu starten oder bei einem einzelnen Test den grünen Pfeil drücken um nur diesen Test auszuführen.
Das wär eine Möglichkeit. Es gibt noch einiges mehr. So wird eine Run Configuration erstellt und die kannst Du immer wieder neu starten.
Oder je nach Projekt kann man das auch über weitere Wege starten (z.B. bei Maven aus dem Maven Tool-Fenster).
public void testJUnit() {
}
fail("Unittest runs!");
Das fail ist rot und Du kannst dann ein Alt Return (oder über die "Glühbirne") mit IntelliJ ein Import hinzufügen: Import static method ..... Assertions.failimport org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.fail;
public class FirstTest {
@Test
public void testJUnit() {
fail("Unittest runs!");
}
}
👏 Wow, sehr präzise und maximal detailliert! Vielen lieben Dank. Es hat super geklappt. Einzige Sache was ich nicht verstehe, warum so kompliziert von IntelliJ gedacht, wenn es bei Eclipse mit einem Klick geht. 😕Ok, es geht also erst einmal um die reine Erstellung. Ich gehe im Folgenden davon aus, dass Du ein einfaches Java Projekt in IntelliJ erzeugt hast.
1. Leg erst einmal einen neuen Ordner in deinem Projekt an. Das kann z.B. test-src sein. Da dann Rechtsclick Mark directory as -> Test Sources Root
2. Dann brauchst Du ggf. noch die Abhängigkeit zu JUnit. Dazu gehst Du im Projektfenster auf dein Projekt, Rechtsclick und Open Module Settings.
2.1. Dann gehst Du auf Libraries und dann in der mittleren Spalte auf das + -> from Maven um dann im Fenster einzugeben: org.junit.jupiter:junit-jupiter:5.8.0 -> nachdem Laden fragt IntelliJ, ob diese Abhängigkeit zu dem Modul hinzufügen soll. Das muss kommen.
2.2. Wechsel nun von Libraries auf Modules - da solltest Du das Modul deines Projektes sehen. Und da musst Du die Dependencies anpassen:
Du solltest junit-jupiter dort sehen mit einem Compile. Das Compile änderst Du auf Test, denn junit brauchst Du nur für fürs Testen.
3. Erster Unit-Test in test-src erstellst Du eine neue Java Klasse (FirstTest oder wie Du diese nennen willst). Hinweis: Ich gehe hier einfach mal kurz vor, wie ich sowas machen würde - incl. der "IntelliJ Unterstützung".
3.1 In der Klasse schreibst Du eine Methode:
3.2 Vor die Methode schreibst Du dann @test und IntelliJ sollte schon beim Schreiben vorschlagen: org.junit.jupiter.api.Test so dass bei einem Abschicken mit Return Taste auch automatisch der Import kommt.Java:public void testJUnit() { }
3.3 In die Methode kommt nun einfach einfail("Unittest runs!");
Das fail ist rot und Du kannst dann ein Alt Return (oder über die "Glühbirne") mit IntelliJ ein Import hinzufügen: Import static method ..... Assertions.fail
Und schon hast Du Deinen ersten Test. Ein Klick auf die zwei grünen Pfeile bei der Klasse sollte den Test starten.
Der Test schlägt dann natürlich fehl: org.opentest4j.AssertionFailedError: Unittest runs!
Die ganze Klasse einmal incl. der imports:
Java:import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.fail; public class FirstTest { @Test public void testJUnit() { fail("Unittest runs!"); } }
Ach ja stimmt 🙈, Danke! Ich werde es also probieren!Die Klassen im Projekt sind ja auch keine Unit Tests. Du erstellst ja für die Klassen erst einmal Unit Tests und diese kannst Du dann ausführen.
Gibt es eigentlich bei IntelliJ auch eine Coverage Funktion wie bei Eclipse? Kann irgendwie nicht findenDie Klassen im Projekt sind ja auch keine Unit Tests. Du erstellst ja für die Klassen erst einmal Unit Tests und diese kannst Du dann ausführen.
Ach genau! Vielen Dank!Da wo du das Run 'All Tests' gefunden hast sollte auch das Debug 'All Tests' sein sowie "More Rund/Debug ->". Und in dem Untermenü findest Du dann das Run 'All Tests' with Coverage.
Oder Wenn Du das über die Symbolleiste machst, dann solltest Du da haben:
- Die Run Configuration (Drop Down)
- Grüner Pfeil als Run
- Grüner Käfer als Debug
- Schild mit grünem Pfeil: Run with Coverage