7.0+29.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(); } }
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() }