Dienstag, 3. September 2019

Tests in JUnit deaktivieren

Tests können in JUnit temporär deaktiviert werden, d.h. sie werden einfach nicht ausgeführt. Natürlich sollte man nicht wahllos irgendwelche Tests ausschalten, sondern sich schon etwas dabei denken. Ein Grund könnte z.B. sein, dass man über fehlgeschlagene Tests nicht mehr den Überblick behalten kann und einfach einige ausblende möchte, an denen man im Moment sowieso nicht arbeiten möchte.

Wichtig ist, dass die Tests dann auch irgendwann wieder eingeschaltet werden. JUnit 4 und JUnit 5 bieten dazu jeweils unterschiedliche Annotationen an. Das erste Code-Beispiel gilt für JUnit 4.

@Test
@Ignore("Dieser Test löst eine Endlosschleife aus")
public void test() {
    // Testcode
}


Die Annotation @Ignore sorgt dafür, dass JUnit den Test nicht ausführt. Allerdings sollten Sie immer eine Erklärung dazu schreiben, damit man sieht, warum der Test deaktiviert wurde. Schließlich sollen auch die deaktivierten Tests nicht in Vergessenheit geraten. Aber dafür sorgt auch die Darstellung von JUnit selbst. Dazu gleich. Sehen wir uns erst mal noch die Annotation in JUnit 5 an:

@Test
@Disabled("Dieser Test löst eine Endlosschleife aus")
public void test() {
    // Testcode
}
Im Screenshot sehen Sie, dass der Test nicht vollkommen verschwindet, sondern von JUnit immer noch angezeigt wird. So kann er nicht total und ganz vergessen werden.