7.0+28.5
JUnit 5 Jupiter

In Kapitel 12 wurde beschrieben, wie sich JUnit-Tests komfortabel in eine QF-Test Testsuite einbinden lassen und ein gemeinsames Protokoll die Ergebnisse aus den übrigen Testfällen mit denen der Unit-Tests kombiniert. Mit Hilfe der Java-Annotation @QFTest.Test ist es möglich, das umgekehrte Szenario zu realisieren - QF-Test Testsuiten als Teil eines JUnit 5 Testfalls einzubinden und die Ergebnisse des QF-Test Testlaufs mit den Ergebnissen der übrigen JUnit-Testfälle zu kombinieren. Dies vereinfacht die Einbindung von QF-Test Testläufen sowohl in bestehende Maven- oder Gradle-Builds, als auch in Entwicklungsumgebungen wie Eclipse oder IntelliJ IDEA.

Konkret muss dafür in der Test-Klasse, welche die Ausführung von einer oder mehrerer QF-Test Testsuiten umfassen soll, eine Methode hinzugefügt werden, welche mit der Annotation de.qfs.apps.qftest.junit5.QFTest.Test markiert ist. Diese Methode muss ein Objekt des Typs de.qfs.apps.qftest.junit5.QFTest zurückgeben, welches durch Aufruf der statischen Methode QFTest.runSuite(...) oder QFTest.runSuites(...) erzeugt wird. Bei Bedarf kann dieses Objekt weiter konfiguriert werden, um zum Beispiel QF-Test Optionen oder Variablen zu spezifizieren. Die Dokumentation der dafür bereitgestellten Methoden findet sich in der Datei doc/javadoc/qftest-junit5.zip innerhalb der QF-Test Installation.

import de.qfs.apps.qftest.junit5.QFTest;
import java.io.File;

public class QFTestDemoTest
{
  @QFTest.Test
  QFTest demoTest() throws Exception {
    // Demo-Testsuite lokalisieren
    final File qftestVerdir = QFTest.getVersionDir();
    final File demo = new File(qftestVerdir,
            "demo/carconfigSwing/carconfigSwing_de.qft");

    return QFTest.runSuite(demo)
                 .withVariable("buggyMode","True")
                 .withArgument("-verbose")
                 .withReportOpen();
  }
}
            
Beispiel 28.3:  Beispiel einer JUnit 5-Testklasse, die einen QF-Test Testlauf einbezieht.

Zur Ausführung des Testes ist es notwendig die folgenden Bibliotheken aus der QF-Test Installation im Classpath einzubinden:

  • lib/truezip.jar
  • qflib/qflib.jar
  • qflib/qfshared.jar
  • qflib/qftest.jar
Wenn das Projekt mit Gradle gebaut wird, so kann man das de.qfs.qftest Gradle-Plugin anwenden, welches die Abhängigkeiten automatisch auflöst. Weitere Informationen dazu finden sich auf der Plugin Homepage.

plugins {
    id 'java'
    id 'de.qfs.qftest' version '1.1.0'
}

repositories {
    mavenCentral()
}

test {
    useJUnitPlatform()
}
            
Beispiel 28.4:  Ausschnitt aus einer gradle.build-Datei, welche im JUnit-Testlauf QF-Test aufruft.