32
Kommandozeilenargumente und Rückgabewerte
32.1
Aufrufsyntax

Die Aufrufsyntax für normalen und Batchmodus unterscheidet sich deutlich, da einige Kommandozeilenargumente für den interaktiven, andere für den Batchmodus oder einen Sub-Modus davon spezifisch sind. Beachten Sie, dass alle Argumente sinnvolle Voreinstellungen besitzen und nur in besonderen Fällen angegeben werden müssen. Im Allgemeinen verwenden Sie lediglich qftest [<Suite> | <Protokoll>]* für den interaktiven Modus oder qftest -batch [-runlog [<Datei>]] [-report <Verzeichnis>] <Suite> für den Batchmodus.

WindowsDas Programm qftest.exe ist eine Windows GUI-Anwendung. Wird diese von der Eingabeaufforderung gestartet, wartet sie nicht darauf, dass QF-Test beendet wird, sondern kehrt sofort zurück. Wenn also ein Test im Batchmodus ausgeführt wird, kann man nicht erkennen, ob QF-Test bereits beendet ist oder nicht (man könnte dem Abhelfen, indem man die Anweisung in eine .bat Datei packt). Außerdem werden bei Verwendung von qftest.exe keine Ausgaben von QF-Test in der Konsole angezeigt. Besser geeignet für die Ausführung von der Eingabeaufforderung ist daher die Konsolen-Anwendung qftestc.exe: Sie wartet, bis QF-Test sich beendet und wenn 'Server Skripte' print-Ausgaben vornehmen, werden diese auf der Konsole angezeigt. Ansonsten gilt was in diesem Kapitel über qftest.exe gesagt wird auch für qftestc.exe.

Interaktiver Modus
Die Aufrufsyntax für den interaktiven Modus lautet:
qftest [-dbg] [-java <Programm>] [-noconsole] [-plugindir <Verzeichnis>] [-J<Java-Argument>]* [-daemon] [-daemonport <Port>] [-engine <Engine>] [-help] [-jythonport <Nummer>] [-libpath <Pfad>] [-license <Datei>] [-options <Datei>] [-port <Nummer>] [-reuse] [-runtime] [-serverhost <Host>] [-shell <Programm>] [-shellarg <Argument>] [-splitlog] [-systemcfg <Datei>] [-tempdir <Verzeichnis>] [-usercfg <Datei>] [-variable <Name>=<Wert>]* [-version] [<Testsuite> | <Protokoll>]*

Es gibt mehrere Sub-Modi für die Ausführung von QF-Test im Batchmodus. Standardfall ist die Durchführung von Tests aus einer oder mehreren Testsuiten. Alternativ können Test-Dokumentation aus Testsuiten oder Reports aus Protokollen generiert oder ein oder mehrere JDKs oder JREs instrumentiert werden. Außerdem kann QF-Test im Daemon Modus gestartet werden in dem es von außen gesteuert werden kann (siehe Kapitel 40). Und schließlich kann auch die Anzeige von Hilfs- oder Versionsinformationen als Sub-Modus angesehen werden.

Tests durchführen
Um eine oder mehrere Testsuiten auszuführen und dabei ein Protokoll und/oder einen Report zu erstellen, verwenden Sie:
qftest -batch [-run] [-dbg] [-java <Programm>] [-noconsole] [-plugindir <Verzeichnis>] [-J<Java-Argument>]* [-compact] [-engine <Engine>] [-exitcodeignoreexception] [-exitcodeignoreerror] [-exitcodeignorewarning] [-jythonport <Nummer>] [-libpath <Pfad>] [-license <Datei>] [-nolog] [-nomessagewindow] [-options <Datei>] [-port <Nummer>] [-report <Verzeichnis>] [-report.checks] [-report.doctags] [-report.errors] [-report.exceptions] [-report.html <Verzeichnis>] [-report.ignorenotimplemented] [-report.ignoreskipped] [-report.junit <Verzeichnis>] [-report.name <Name>] [-report.nodeicons] [-report.passhtml] [-report.scale-thumbnails <Prozent>] [-report.teststeps] [-report.thumbnails] [-report.warnings] [-report.xml <Verzeichnis>] [-runid [<ID>]] [-runlog [<Datei>]] [-runtime] [-serverhost <Host>] [-shell <Programm>] [-shellarg <Argument>] [-splitlog] [-systemcfg <Datei>] [-test <Index>|<Id>]* [-threads <Anzahl>]* [-variable <Name>=<Wert>]* [-verbose [<level>]] <Testsuite>+
Ausführen eines Test durch einen QF-Test Daemon
Die folgenden Parameter steuern die Ausführung eines QF-Test Daemon-Tests:
qftest -batch -calldaemon [-cleanup] [-dbg] [-java <Programm>] [-noconsole] [-J<java-argument>]* [-daemonhost <Host>] [-daemonport <Port>] [-nomessagewindow] [-ping] [-options <Datei>] [-runid [<ID>]] [-runlog [<Datei>]] [-startclean] [-startsut] [-stopclean] [-stoprun] [-suitedir <Verzeichnis>] [-terminate] [-timeout <Millisekunden>] [-variable <Name>=<Wert>]* [-verbose [<level>]] <suite#test-case>
Test-Dokumentation erstellen
Package oder Testfall Dokumentation kann für eine oder mehrere Testsuiten oder ganze Verzeichnisse in einem Durchgang erstellt werden. Dies wird in Kapitel 15 genauer besrieben. Die Kommandozeilen Syntax lautet:
qftest -batch -gendoc [-dbg] [-java <Programm>] [-noconsole] [-J<Java-Argument>]* [-license <Datei>] [-options <Datei>] [-nomessagewindow] [-pkgdoc <Verzeichnis>] [-pkgdoc.doctags] [-pkgdoc.dependencies] [-pkgdoc.html <Verzeichnis>] [-pkgdoc.includelocal] [-pkgdoc.nodeicons] [-pkgdoc.passhtml] [-pkgdoc.sortpackages] [-pkgdoc.sortprocedures] [-pkgdoc.xml <Verzeichnis>] [-sourcedir <Verzeichnis>] [-testdoc <Verzeichnis>] [-testdoc.doctags] [-testdoc.followcalls] [-testdoc.html <Verzeichnis>] [-testdoc.nodeicons] [-testdoc.passhtml] [-testdoc.sorttestcases] [-testdoc.sorttestsets] [-testdoc.teststeps] [-testdoc.xml <Verzeichnis>] (<Testsuite> | <Verzeichnis>)+
Einen Report aus Protokollen erstellen
Um einen Report aus einem oder mehreren Protokollen oder ganzen Verzeichnissen zu erstellen verwenden Sie:
qftest -batch -genreport [-dbg] [-java <Programm>] [-noconsole] [-J<Java-Argument>]* [-license <Datei>] [-nomessagewindow] [-options <Datei>] [-report <Verzeichnis>] [-report.checks] [-report.doctags] [-report.errors] [-report.exceptions] [-report.html <Verzeichnis>] [-report.ignorenotimplemented] [-report.ignoreskipped] [-report.junit <Verzeichnis>] [-report.name <Name>] [-report.nodeicons] [-report.passhtml] [-report.scale-thumbnails <Prozent>] [-report.teststeps] [-report.thumbnails] [-report.warnings] [-report.xml <Verzeichnis>] [-runlogdir <Verzeichnis>] (<Protokoll> | <Verzeichnis>)+
Ein oder mehrere JDKs oder JREs instrumentieren
Dies kann zur vollständigen Automatisierung von Tests hilfreich sein, bei denen eine Installation des SUT durchgeführt wird und dieses sein eigenes JRE mitbringt, welches zunächst instrumentiert werden muss, bevor Tests ausgeführt werden können. Folgender Aufruf wird hierzu benötigt:
qftest -batch -instrument [-dbg] [-java <Programm>] [-noconsole] [-J<Java-Argument>]* [-license <Datei>] [-nomessagewindow] [-options <Datei>] <Pfad zu JDK oder JRE>+
Daemon Modus
Um QF-Test im Daemon Modus wie in Kapitel 40 beschrieben zu starten verwenden Sie:
qftest -batch -daemon [-dbg] [-java <Programm>] [-noconsole] [-plugindir <Verzeichnis>] [-J<Java-Argument>]* [-daemonport <Port>] [-engine <Engine>] [-jythonport <Nummer>] [-libpath <Pfad>] [-license <Datei>] [-nolog] [-nomessagewindow] [-options <Datei>] [-port <Nummer>] [-runtime] [-serverhost <Host>] [-shell <Programm>] [-shellarg <Argument>] [-systemcfg <Datei>] [-variable <Name>=<Wert>]*
Eine Testsuite in eine andere importieren
qftest -batch -import [-import.from <Testsuite>] [-import.into <Testsuite>] [-import.components] [-import.procedures] [-import.tests]
Referenzen einer Testsuite analysieren
qftest -batch -analyze [-analyze.target <Verzeichnis>] [-suitedir <Verzeichnis>] [-analyze.components] [-analyze.procedures] [-analyze.dependencies] [-analyze.tests] [-analyze.transitive] (<Testsuite> | <Verzeichnis>)+
Versionsinformationen ausgeben
qftest -batch -version
Hilfe anfordern
qftest -batch -help
32.2
Kommandozeilenargumente

Kommandozeilenargumente für QF-Test fallen in drei Kategorien, wobei es nicht auf die Reihenfolge ankommt.

32.2.1
Argumente für das Startskript

Diese Argumente werden direkt vom qftest Skript bzw. Programm ausgewertet und heben die Werte auf, die während der Installation von QF-Test ermittelt wurden. Unter Unix stehen diese in der Datei launcher.cfg in QF-Tests Wurzelverzeichnis, unter Windows in der Registry.

-batch
Startet QF-Test im Batchmodus. Dadurch lädt QF-Test eine Testsuite, führt sie direkt aus und beendet sich mit einem Rückgabewert, der das Ergebnis des Testlaufs wiederspiegelt.
-dbg
Schaltet Debugausgaben für das Startskript ein. Den selben Effekt erreichen Sie, wenn Sie die Umgebungsvariable QFTEST_DEBUG auf einen nichtleeren Wert setzen. Sofern nicht zusätzlich -noconsole angegeben ist, öffnet QF-Test unter Windows in diesem Fall ein Konsolenfenster, da die Ausgaben ansonsten nicht sichtbar wären. Falls der alte Verbindungsmechanismus zum SUT eingesetzt wird, schaltet diese Option gleichzeitig Debugausgaben für das qfclient Programm und QF-Tests java Hülle ein (vgl. Kapitel 4).
-java <Programm>
Das Java Programm, das die Ausführung von QF-Test übernimmt. Standard sind java unter Unix und javaw.exe unter Windows, sofern während der Installation nichts anderes angegeben wurde.
-noconsole (nur Windows)
Verhindert das Öffnen eines Konsolenfensters unter Windows für den Fall, dass -dbg ebenfalls angegeben ist.
-plugindir <Verzeichnis>
Mit diesem Argument kann der Ort für das Plugin Verzeichnis für jar Dateien, auf die per Skript zugegriffen werden soll, überschrieben werden. Dieses Verzeichnis heisst normalerweise plugin und liegt im Wurzelverzeichnis von QF-Test, qftest. Weitere Informationen über Plugins finden Sie in Abschnitt 37.2.
32.2.2
Argumente für die Java VM

Sie können durch das Startskript Argumente an die Java VM weiterreichen, indem Sie diesen -J voranstellen, z.B. -J-Duser.language=en, um eine Systemvariable zu setzen. Um den classpath anzugeben, fügen Sie -J nur dem -cp oder -classpath Argument zu, nicht dem eigentlichen Wert, z.B. -J-classpath myclasses.jar. Auch wenn Sie den classpath auf diese Weise angeben, brauchen Sie QF-Tests eigene jar Archive nicht zu berücksichtigen.

32.2.3
Argumente für QF-Test

Die restlichen Argumente werden von QF-Test selbst ausgewertet, wenn es von der Java VM ausgeführt wird. Diese Argumente können auch in eine Datei geschrieben werden. Das Format lautet <Name>=<Wert> für Argumente mit Parametern und <Name>=true oder <Name>=false, um ein einfaches Argument ein- oder auszuschalten. Normalerweise heisst diese Datei qftest.options, liegt im bin Verzeichnis von QF-Test und wird nur für interne Zwecke verwendet. Wenn Sie Änderungen an dieser Datei vornehmen, ist es sinnvoll, sie in das Wurzelverzeichnis von QF-Test zu kopieren, da diese Änderungen dadurch auch nach einem Update gültig bleiben. Alternativ können Sie über das -options <Datei> Argument eine andere Datei angeben. Argumente auf der Kommandozeile haben Vorrang vor Argumenten aus der Datei. Für Argumente, die mehrfach angegeben werden können, werden sowohl Angaben von der Kommandozeile, als auch aus der Datei übernommen.

-analyze (nur Batchmodus)
Modus, um Referenzen und Komponentenverweise in den angegebenen Testsuiten zu analysieren. Das Ergebnis wird in eine angegebene Datei geschrieben.
-analyze.target <Verzeichnis> (nur Batchmodus)
Das Zielverzeichnis, in welches die Ergebnisdatei gespeichert wird.
-analyze.components (nur Batchmodus)
Schalter, um Komponentenverweise zu analysieren.
-analyze.dependencies (nur Batchmodus)
Schalter, um Verweise auf Abhängigkeiten zu analysieren.
-analyze.procedures (nur Batchmodus)
Schalter, um Aufrufe von Prozeduren zu analysieren.
-analyze.tests (nur Batchmodus)
Schalter, um Aufrufe von Testfällen zu analysieren.
-analyze.transitive (nur Batchmodus)
Schalter, um die gefundenen Referenzen transitiv zu analysieren, d.h. auch deren Inhalt und Verweise zu prüfen.
-calldaemon (nur Batchmodus)
Verbinden mit einem laufenden QF-Test Daemon, um einen Test(fall) auszuführen.
-cleanup (nur Calldaemon-Modus)
Mit diesem Argument werden alle TestRunDaemon-Objekte einer Daemon-Instanz aufgeräumt und alle Clients beendet bevor der Test ausgeführt wird.
-compact (nur Batchmodus)
Erstellt ein kompaktes Protokoll, das nur die Äste und Knoten enthält, in denen Warnungen, Fehler oder Exceptions aufgetreten sind. Hat keine Bedeutung, wenn das Protokoll mittels -nolog unterdrückt wird.
-daemon
Startet QF-Test im Daemon Modus. Weitere Informationen finden Sie in Kapitel 40.
-daemonport <Port>
Legt den Registry Port für den Daemon fest. Standard ist 3543 oder der mittels -port <Nummer> festgelegte Port.
-daemonhost <Host> (nur Calldaemon-Modus)
Legt den Rechner fest, auf dem nach einem laufenden QF-Test Daemon gesucht wird (Vorgabe ist localhost).
-engine <Engine>
Legt fest, welche Engine Lizenzen verwendet werden. Diese Option ist nur sinnvoll wenn Ihre QF-Test Lizenz eine Mischung von Engine Lizenzen in unterschiedlicher Anzahl unterstützt. In diesem Fall kann es nötig sein, die benötigte GUI Engine zu spezifizieren, um so Lizenz-Konflikte mit Kollegen zu vermeiden, welche die selbe Lizenz nutzen. Mögliche Werte sind "all" für alle unterstützten Lizenzen, "ask" um einen Dialog zur Auswahl der Engine anzuzeigen sowie eine beliebige Kombination von "awt" für AWT/Swing, "swt" für SWT oder "web" für Web, z.B. "awt,web". Weitere Informationen hierzu finden Sie in Abschnitt 29.1.7.
-exitcodeignoreexception (nur Batchmodus)
Exceptions, Fehler und Warnungen werden bei der Berechnung des Rückgabewertes von QF-Test ignoriert. Das bedeutet, dass bei einem Testlauf mit Exceptions, Fehlern oder Warnungen 0 geliefert wird. Diese Option ist hilfreich für die Integration von QF-Test mit Build-Tools, die abhängig vom Rückgabewert den Build als fehlgeschlagen interpretieren.
-exitcodeignoreerror (nur Batchmodus)
Fehler und Warnungen werden bei der Berechnung des Rückgabewertes von QF-Test ignoriert. Das bedeutet, dass bei einem Testlauf mit nur Fehlern oder Warnungen 0 geliefert wird. Diese Option ist hilfreich für die Integration von QF-Test mit Build-Tools, die abhängig vom Rückgabewert den Build als fehlgeschlagen interpretieren.
-exitcodeignorewarning (nur Batchmodus)
Warnungen werden bei der Berechnung des Rückgabewertes von QF-Test ignoriert. Das bedeutet, dass bei einem Testlauf mit nur Warnungen 0 geliefert wird. Diese Option ist hilfreich für die Integration von QF-Test mit Build-Tools, die abhängig vom Rückgabewert den Build als fehlgeschlagen interpretieren.
-gendoc (nur Batchmodus)
Teilt QF-Test mit dass dieser Batch-Lauf zur Erstellung von Test-Dokumentation aus Testsuiten dient.
-genreport (nur Batchmodus)
Teilt QF-Test mit dass dieser Batch-Lauf zur Erstellung von Reports aus Protokollen dient.
-help
Zeigt Hilfe zu den verfügbaren Kommandozeilenargumenten an.
-import (nur Batchmodus)
Importiert eine Testsuite in eine andere.
-import.from <Testsuite> (nur Batchmodus)
Die Testsuite, welche importiert werden soll.
-import.into <Testsuite> (nur Batchmodus)
Die Zieltestsuite, in die importiert werden soll.
-import.components (nur Batchmodus)
Schalter, um Komponenten zu importieren.
-import.procedures (nur Batchmodus)
Schalter, um Packages und Prozeduren zu importieren.
-import.tests (nur Batchmodus)
Schalter, um Testfallsätze und Testfälle zu importieren.
-instrument (nur Batchmodus)
Instrumentiert ein oder mehrere JDKs oder JREs automatisch. Diese Instrumentierung und der darauf folgende Test können nicht in einem Aufruf vereint werden, sondern müssen als separate Kommandos ausgeführt werden.
-jythonport <Nummer>
Weist den eingebetteten Jython Interpreter an, auf der angegebenen Portnummer auf TCP Verbindungen zu lauschen. Sie können dann telnet verwenden, um sich mit diesem Prot zu verbinden und eine interaktive Jython Kommandozeile zu erhalten.
-libpath <Pfad>
Dieser Wert entspricht der Option Verzeichnisse mit Testsuite Bibliotheken und setzt diese ausser Kraft. Die Verzeichnisse des Bibliothekspfads sollten durch das dem System entsprechende Trennzeichen getrennt werden, d.h. ';' für Windows und ':' für Unix. Das include Verzeichnis von QF-Test wird automatisch an das Ende des Bibliothekspfads gestellt.
-license <Datei>
Gibt den Ort der Lizenzdatei an, falls dieser vom Standard abweicht (vgl. Abschnitt 1.3).
-nolog (nur Batchmodus)
Verhindert die automatische Erstellung eines Protokolls. Falls -runlog [<Datei>], -report <Verzeichnis>, -report.html <Verzeichnis>, -report.xml <Verzeichnis> oder -report.junit <Verzeichnis> angegeben ist, wird dieses Argument ignoriert. Diese Option ist nur noch aus Gründen der Rückwärtskompatibilität vorhanden. Um den Speicherverbrauch im Griff zu halten sollten geteilte Protokolle verwendet werden (vgl. -splitlog).
-nomessagewindow (nut Batchmodus)
Wenn schwere Fehler im Batchmodus auftreten, gibt QF-Test eine Fehlermeldung in der Konsole aus und öffnet zur besseren Sichtbarkeit zusätzlich für ca. 30 Sekunden einen Fehlerdialog. Das Öffnen des Dialogs kann mit diesem Argument verhindert werden.
-options <Datei>
Legt die Datei fest, aus der weitere Argumente gelesen werden. Dieses Argument kann mehrfach angegeben werden, um Argumente aus mehreren Dateien zu lesen.
-ping (nur Calldaemon-Modus)
Prüft, ob ein Daemon erreichbar ist.
-pkgdoc <Verzeichnis> (nur Batchmodus)
Mit diesem Argument erstellt QF-Test HTML und XML Pkgdoc Dokumentation. Ist kein Verzeichnis angegeben wird der Name aus dem Namen der Testsuite gebildet.
-pkgdoc.dependencies (nur Batchmodus)
Legt fest, ob 'Abhängigkeiten' in pgkdoc Dokumenten aufgeführt werden. Standard ist ja, mit -pkgdoc.doctags=false können diese ausgeschaltet werden.
-pkgdoc.doctags (nur Batchmodus)
Legt fest, ob die doctags Erweiterungen von QFS verwendet werden. Standard ist ja, mit -pkgdoc.doctags=false können die doctags ausgeschaltet werden.
-pkgdoc.html <Verzeichnis> (nur Batchmodus)
Mit diesem Argument erstellt QF-Test HTML Pkgdoc Dokumentation. Ist kein Verzeichnis angegeben, wird der Name aus dem Namen der Testsuite gebildet.
-pkgdoc.includelocal (nur Batchmodus)
Legt fest, ob lokale Packages und Prozeduren, d.h. solche, deren Name mit einem '_' beginnt, einbezogen werden. Standard ist nein.
-pkgdoc.nodeicons (nur Batchmodus)
Legt fest, ob Icons für Knoten in der Pkgdoc Dokumentation angezeigt werden. Standard ist ja, mit -pkgdoc.nodeicons=false können die Icons ausgeschaltet werden.
-pkgdoc.passhtml (nur Batchmodus)
Legt fest, ob HTML Tags in Kommentaren unverändert an die HTML Dokumentation durchgereicht werden. Standard ist ja, mit -pkgdoc.passhtml=false können die Tags ausgeschaltet werden.
-pkgdoc.sortpackages (nur Batchmodus)
Legt fest, ob Packages alphabetisch sortiert werden. Standard ist ja, mit -pkgdoc.sortpackages=false kann die Sortierung ausgeschaltet werden.
-pkgdoc.sortprocedures (nur Batchmodus)
Legt fest, ob Prozeduren alphabetisch sortiert werden. Standard ist ja, mit -pkgdoc.sortprocedures=false kann die Sortierung ausgeschaltet werden.
-pkgdoc.splitparagraph (nur Batchmodus)
Legt fest, ob Kommentare an Leerzeilen in Absätze aufgeteilt werden. Standard ist ja, mit -pkgdoc.splitparagraph=false können Sie die Option ausschalten.
-pkgdoc.stylesheet <Datei> (nur Batchmodus)
Optionales XSLT Stylesheet für die zweite Stufe der Transformation.
-pkgdoc.xml <Verzeichnis> (nur Batchmodus)
Mit diesem Argument erstellt QF-Test XML Pkgdoc Dokumentation. Ist kein Verzeichnis angegeben, wird der Name aus dem Namen der Testsuite gebildet.
-port <Nummer>
Der TCP Port auf dem QF-Test mit dem SUT kommuniziert. Normalerweise sucht sich QF-Test einen freien dynamischen Port, um dort seine eigene RMI Registry anzulegen. Ein spezieller Port sollte nur dann angegeben werden, wenn es erforderlich ist, um das SUT zu starten.
-report <Verzeichnis> (nur Batchmodus)
Erstellt einen kombinierten XML/HTML Report. Im Verzeichnisnamen können Platzhalter, wie in Abschnitt 32.2.4 beschrieben, angegeben werden.
-report.checks (nur Batchmodus)
Legt fest, ob Checks im Report aufgelistet werden. Standard ist nein.
-report.doctags (nur Batchmodus)
Legt fest, ob die doctags Erweiterungen von QFS verwendet werden. Standard ist ja, mit -report.doctags=false können die doctags ausgeschaltet werden.
-report.errors (nur Batchmodus)
Legt fest, ob Fehler im Report aufgelistet werden. Standard ist ja, mit -report.errors=false können die Fehler ausgeschaltet werden.
-report.exceptions (nur Batchmodus)
Legt fest, ob Exceptions im Report aufgelistet werden. Standard ist ja, mit -report.exceptions=false können die Exceptions ausgeschaltet werden.
-report.html <Verzeichnis> (nur Batchmodus)
Erstellt einen HTML Report. Im Verzeichnisnamen können Platzhalter, wie in Abschnitt 32.2.4 beschrieben, angegeben werden.
-report.ignorenotimplemented (nur Batchmodus)
Legt fest, ob nicht implementierte Knoten im Report ignoriert werden sollen. In diesem Fall werden auch die Legende und die Spalten für nicht implementierte Tests nicht angezeigt. Standard ist nein, d.h. nicht implementierte Tests werden angezeigt.
-report.ignoreskipped (nur Batchmodus)
Legt fest, ob übersprungene Knoten im Report ignoriert werden sollen. In diesem Fall werden auch die Legende und die Spalten für übersprungene Tests nicht angezeigt. Standard ist nein, d.h. übersprungene Tests werden angezeigt.
-report.junit <Verzeichnis> (nur Batchmodus)
Erstellt einen Report im JUnit XML Format, wie ihn viele Continuous Integration Tools verstehen. Im Verzeichnisnamen können Platzhalter, wie in Abschnitt 32.2.4 beschrieben, angegeben werden.
-report.name <Name> (nur Batchmodus)
Legt den Reportnamen fest (nicht den Dateinamen). Standard ist die Runid. Im Reportnamen können Platzhalter, wie in Abschnitt 32.2.4 beschrieben, angegeben werden.
-report.nodeicons (nur Batchmodus)
Legt fest, ob Icons für Knoten im Report angezeigt werden. Standard ist ja, mit -report.nodeicons=false können die Icons ausgeschaltet werden.
-report.passhtml (nur Batchmodus)
Legt fest, ob HTML Tags in Kommentaren unverändert an den HTML Report durchgereicht werden. Standard ist ja, mit -report.passhtml=false können die Tags ausgeschaltet werden.
-report.scale-thumbnails <Prozent> (nur Batchmodus)
Bestimmt die Skalierung von Miniaturbildern für Screenshots in der Fehlerübersichten von Reports, angegeben in Prozent. Standard ist 20.
-report.teststeps (nur Batchmodus)
Legt fest, ob Testschritte im Report aufgelistet werden. Standard ist ja, mit -report.teststeps=false können die Testschritte ausgeschaltet werden.
-report.thumbnails (nur Batchmodus)
Legt fest, ob Miniaturbilder für Screenshots in den Fehlerübersichten des Reports dargestellt werden. Standard ist nein.
-report.warnings (nur Batchmodus)
Legt fest, ob Warnungen im Report berücksichtigt werden. Standard ist ja.
-report.xml <Verzeichnis> (nur Batchmodus)
Erstellt einen XML Report. Im Verzeichnisnamen können Platzhalter, wie in Abschnitt 32.2.4 beschrieben, angegeben werden.
-reuse (nur interaktiver Modus)
Dieses Argument findet vor allem beim Start von QF-Test über ein Desktop Icon oder mittels einer Dateiverknüpfung aus dem Windows Explorer Anwendung. Es veranlasst QF-Test zunächst nach bereits laufenden QF-Test Programmen zu suchen und diese zu bitten, die angegebenen Dateien zu öffnen. Im Erfolgsfall wird die neu gestartete Version sofort wieder beendet und das bereits laufende Programm öffnet die Dateien in neuen Fenstern.
-run (nur Batchmodus)
Teilt QF-Test explizit mit dass dieser Batch-Lauf zur Durchführung von Tests dient und nicht zur Erstellung von Test-Dokumentation oder Reports. Da dies der Standard-Fall ist kann dieses Kommandozeilenargument wegfallen.
-runid [<ID>] (Batch- und Calldaemon-Modus)
Legt die ID eines Testlaufs fest. In der ID können Platzhalter, wie in Abschnitt 32.2.4 beschrieben, angegeben werden. Sie dient selbst wiederum als Ersatz für den Platzhalter %i/+i.
-runlog [<Datei>] (Batch- und Calldaemon-Modus)
Schreibt das Protokoll in die angegebene Datei. Im optionalen Dateinamen können Platzhalter, wie in Abschnitt 32.2.4 beschrieben, angegeben werden. Ist keine Endung angegeben, wird automatisch .qrz angehängt und das Protokoll komprimiert geschrieben. Andernfalls entscheidet die Endung .qrl oder .qrz über die Kompression. Ist gar keine Datei angegeben, wird der Name aus dem Namen der Testsuite sowie dem aktuellen Datum und Uhrzeit gebildet. Ein Protokoll wird immer erstellt, sofern es nicht durch Angabe von -nolog unterdrückt oder ein Report generiert wird. Im Calldaemon-Modus wird das Protokoll nur bei Angabe eines (lokalen) Dateinames gespeichert.
-runlogdir <Verzeichnis> (nur Batchmodus)
Dieses Argument legt das Zielverzeichnis zum Speichern von Protokollen fest, sofern im Argument -runlog [<Datei>] kein absoluter Pfad angegeben ist. Wird dieses Argument bei der Erstellung eines Reports angegeben, werden die Dateien im Report entsprechend der Struktur der Protokolle relativ zu diesem Verzeichnis angelegt. Im Verzeichnisnamen können Platzhalter, wie in Abschnitt 32.2.4 beschrieben, angegeben werden.
-runtime
Mit diesem Argument verwendet QF-Test ausschließlich Runtime Lizenzen. Im Batch Modus wird QF-Test normalerweise mit einer Runtime Lizenz gestartet (oder mehreren bei der Angabe von -threads <Anzahl>). Sind nicht ausreichend Runtime Lizenzen vorhanden, verwendet QF-Test stattdessen volle Entwicklerlizenzen. Dies wird durch die Angabe von -runtime verhindert, so dass sich QF-Test bei mangelnden Runtime Lizenzen mit einem Fehler beendet. Im interaktiven Modus verwendet QF-Test bei Angabe von -runtime eine Runtime statt einer Entwicklerlizenz. Damit können Tests normal oder unter Verwendung des Debuggers ausgeführt werden. Testsuite können allerdings nicht gespeichert werden, selbst wenn sie für experimentelle Tests verändert wurden.
-shell <Programm>
Das Shell Programm, das zur Ausführung eines 'Shellkommando ausführen' Knotens verwendet wird. Vorgegeben sind /bin/sh unter Unix und COMMAND.COM bzw. cmd.exe unter Windows.
-shellarg <Argument>
Das Argument, das der mittels -shell <Programm> angegebenen Shell mitteilt, dass sie das darauf folgende Argument als Kommando ausführen soll. Standard für Unix Shells ist -c, während COMMAND.COM und cmd.exe /c erwarten. Wenn Sie Unix Tools unter Windows verwenden und z.B. sh oder bash als Shell angeben, dürfen Sie nicht vergessen, hier -c anzugeben.
-serverhost <Host>
Gibt den Hostnamen des Rechners an, auf dem QF-Test läuft. Normalerweise wird dieser automatisch ermittelt. Eventuell müssen Sie ihn aber angeben, wenn Probleme mit der Namensauflösung auftreten.
-sourcedir <Verzeichnis> (nur Batchmodus)
Wird dieses Argument bei der Erstellung eines Reports angegeben, werden die Dateien im Report entsprechend der Struktur der Testsuiten relativ zu diesem Verzeichnis angelegt, sofern nicht gleichzeitig -runlogdir <Verzeichnis> angegeben wird. In jedem Fall wird das Verzeichnis einer Testsuite im Report nur dann aufgelistet, wenn dieses Argument angegeben ist und die Testsuite sich unterhalb dieses Verzeichnis befindet.
-splitlog (batch mode only)
Im Batchmodus sind geteilte Protokolle (vgl. Abschnitt 9.1.4) standardmäßig aktiviert. Sie können durch Angabe von -splitlog=false ausgeschaltet werden. Wird -splitlog explizit ohne Parameter angegeben, ändert sich die Standard-Endung für Protokolle von .qrz in .qzp, um geteilte Protokolle im ZIP Format zu erzeugen. Unabhängig davon kann die Endung kann durch explizite Angabe beim Namen der Protokolls festgelegt werden.
-startclean (nur Calldaemon-Modus)
Mit diesem Argument werden alle Context-Objekte des gemeinsamen TestRunDaemons aufgeräumt bevor der Test ausgeführt wird.
-startsut (nur zum internen Gebrauch)
Dieses Argument wird zum Starten eines Clients auf einem entfernten Rechner verwendet. Sie sollten es nicht direkt verwenden, sondern ggf. auf die Prozedur qfs.daemon.startRemoteSUT aus der Standardbibliothek qfs.qft zurückgreifen.
-stopclean (nur Calldaemon-Modus)
Mit diesem Argument werden alle Context-Objekte des gemeinsamen TestRunDaemons aufgeräumt nachdem der Test ausgeführt wurde.
-stoprun (nur Calldaemon-Modus)
Stoppt ein laufenden Test auf dem Daemon mit dem angegebenen Hostnamen und Port. Dieses Argument kann mit -cleanup oder -stopclean kombiniert werden.
-suitedir <Verzeichnis> (nur Calldaemon-Modus)
Geben Sie ein Verzeichnis auf dem Daemon-Rechner an, wo der QF-Test Daemon nach Testsuiten sucht. Andernfalls kann beim auszuführenden Test auch ein absoluter Pfad angegeben werden.
-systemcfg <Datei>
Legt die Konfigurationsdatei für Systemeinstellungen fest (siehe Abschnitt 1.4).
-tempdir <Verzeichnis> (nur normaler Modus)
Kann unter Windows benötigt werden, um temporäre Dateien für die kontextsensitive Hilfe anzulegen. Normalerweise werden die Umgebungsvariablen TEMP und TMP ausgewertet.
-terminate (nur Calldaemon-Modus)
Mit dieser Option wird der QF-Test Daemon (nach Ausführung des Tests) beendet.
-test <Index>|<Id> (nur Batchmodus)
Ohne diese Angabe werden die Tests der Suite einer nach dem anderen ausgeführt. Durch die Angabe von -test <Index>|<Id> können Sie gezielt einzelne Tests herauspicken. Einen beliebigen Knoten der Testsuite, der sich nicht auf der obersten Ebene befinden muss, können Sie über seine 'Id' auswählen oder im Falle von 'Testfall' or 'Testfallsatz' Knoten auch über seinen qualifizierten Namen. Die Tests auf der obersten Ebene sind zudem über einen numerischen Wert ansprechbar, wobei der erste Test den Index 0 hat. Sie können -test <Index>|<Id> beliebig oft angeben, auch mehrfach mit demselben Wert.
-testdoc <Verzeichnis> (nur Batchmodus)
Mit diesem Argument erstellt QF-Test HTML und XML Testdoc Dokumentation. Ist kein Verzeichnis angegeben wird der Name aus dem Namen der Testsuite gebildet.
-testdoc.doctags (nur Batchmodus)
Legt fest, ob die doctags Erweiterungen von QFS verwendet werden. Standard ist ja, mit -testdoc.doctags=false können die doctags ausgeschaltet werden.
-testdoc.followcalls (nur Batchmodus)
Normalerweise ignoriert QF-Test 'Testaufruf' Knoten bei der Testdoc Generierung. Mit diesem Argument werden die referenzierten Ziele, also 'Testfall', 'Testfallsatz' oder ganze Testsuite, so eingebunden, als wären sie Teil der Ausgangssuite. Hierdurch ist es möglich, partielle Testdoc Dokumente mit Hilfe einer dedizierten Testsuite zu erstellen, die 'Testaufrufe' für die benötigten Teile enthält.
-testdoc.html <Verzeichnis> (nur Batchmodus)
Mit diesem Argument erstellt QF-Test HTML Testdoc Dokumentation. Ist kein Verzeichnis angegeben, wird der Name aus dem Namen der Testsuite gebildet.
-testdoc.nodeicons (nur Batchmodus)
Legt fest, ob Icons für Knoten in der Testdoc Dokumentation angezeigt werden. Standard ist ja, mit -testdoc.nodeicons=false können die Icons ausgeschaltet werden.
-testdoc.passhtml (nur Batchmodus)
Legt fest, ob HTML Tags in Kommentaren unverändert an die HTML Dokumentation durchgereicht werden. Standard ist ja, mit -testdoc.passhtml=false können die Tags ausgeschaltet werden.
-testdoc.sorttestsets (nur Batchmodus)
Legt fest, ob Testfallsätze alphabetisch sortiert werden. Standard ist ja, mit -testdoc.sorttestsets=false kann die Sortierung ausgeschaltet werden.
-testdoc.sorttestcases (nur Batchmodus)
Legt fest, ob Testfälle alphabetisch sortiert werden. Standard ist ja, mit -testdoc.sorttestcases=false kann die Sortierung ausgeschaltet werden.
-testdoc.splitparagraph (nur Batchmodus)
Legt fest, ob Kommentare an Leerzeilen in Absätze aufgeteilt werden. Standard ist ja, mit -testdoc.splitparagraph=false können Sie die Option ausschalten.
-testdoc.stylesheet <Datei> (nur Batchmodus)
Optionales XSLT Stylesheet für die zweite Stufe der Transformation.
-testdoc.teststeps (nur Batchmodus)
Legt fest, ob Testschritte in der Testdoc Dokumentation aufgelistet werden. Standard ist ja, mit -testdoc.teststeps=false können die Testschritte ausgeschaltet werden.
-testdoc.xml <Verzeichnis> (nur Batchmodus)
Mit diesem Argument erstellt QF-Test XML Testdoc Dokumentation. Ist kein Verzeichnis angegeben, wird der Name aus dem Namen der Testsuite gebildet.
-threads <Anzahl> (batch mode only)
Führt des selbe Testsuite in einer Anzahl von parallelen Threads zur Durchführung von Lasttests aus. Pro Thread wird eine Lizenz benötigt, daher sollte normalerweise das Argument -runtime ebenfalls angegeben werden. Näheres zu Lasttests finden Sie in Kapitel 21.
-timeout <Millisekunden> (nur Calldaemon-Modus)
Maximale Dauer eines Tests, der vom QF-Test Daemon ausgeführt wird (in Millisekunden; Vorgabe ist unendlich).
-usercfg <Datei> (nur normaler Modus)
Legt die Konfigurationsdatei für Benutzereinstellungen fest (siehe Abschnitt 1.4).
-variable <Name>=<Wert>
Durch die Angabe von -variable <Name>=<Wert> geben Sie der Variable <Name> den Wert <Wert> (vgl. Kapitel 8). Sie können beliebig viele Variablen definieren.
-verbose [<level>]
Ausgabe von Fortschritts- und Statusinformationen während eines Testlaufs auf der Konsole. Diese Option ist insbesondere dann sinnvoll, wenn der Test via -calldaemon auf einem anderen Rechner ausgeführt wird und daher die Ausführung u.U. nicht so einfach verfolgt werden kann. Unter Windows muss man allerdings qftestc.exe (anstelle von qftest.exe) verwenden, um die Ausgaben zu sehen. Die Angabe eines Levels ist optional, mögliche Werte sind all (alle Knoten ausgeben) und tests (Vorgabe; nur 'Testfallsatz', 'Testfall' und 'Test' Knoten werden ausgegeben). Jeder dieser Werte kann zusätzlich mit errors (Ausgabe von Fehler- und Exceptionmeldungen) kombiniert werden, etwa tests,errors.
-version
Hiermit gibt QF-Test Versionsinformationen aus und beendet sich dann.
32.2.4
Platzhalter im Dateinamen für Protokoll und Report

Im Dateinamen, der bei den Kommandozeilenargumenten -runid [<ID>], -runlog [<Datei>], -runlogdir <Verzeichnis>, -report <Verzeichnis>, -report.html <Verzeichnis>, -report.name <Name>, -report.xml <Verzeichnis> oder -report.junit <Verzeichnis> angegeben werden kann, können Platzhalter der Form %X oder +X verwendet werden (letzteres muss unter Windows verwendet werden, da % Zeichen dort besondere Bedeutung haben), wobei X für ein Zeichen aus der folgenden Tabelle steht. Wenn das Protokoll oder der Report erstellt werden, setzt QF-Test den entsprechenden Wert ein. Alle Zeitwerte beziehen sich auf die Startzeit des Testlaufs.

Hinweis Werden mehrere Testsuites ausgeführt, sollten Sie auf jeden Fall den Namen der Suite als Teil des Namens für das Protokoll oder den Report verwenden, indem Sie %b angeben. Andernfalls wird eventuell nur ein Protokoll oder Report entsprechend der Ausführung der letzten Testsuite erstellt.

Zeichen Bedeutung
% '%'-Zeichen.
+ '+'-Zeichen.
i Die aktuelle Runid wie mit -runid [<ID>] angegeben.
p Das Verzeichnis der Testsuite relativ zu -sourcedir <Verzeichnis> oder absolut falls -sourcedir <Verzeichnis> nicht angegeben ist. Ist -sourcedir <Verzeichnis> angegeben, die Testsuite aber nicht darunter enthalten, ist dieser Wert leer.
P Das absolute Verzeichnis der Testsuite. Darf nur am Anfang stehen.
b Der Name der Testsuite ohne Verzeichnis oder die Endung .qft.
r Der Rückgabewert des Testlaufs (nur -runlog).
w Die Anzahl der Warnungen im Testlauf (nur -runlog).
e Die Anzahl der Fehler im Testlauf (nur -runlog).
x Die Anzahl der Exceptions im Testlauf (nur -runlog).
y Das aktuelle Jahr (2 Ziffern).
Y Das aktuelle Jahr (4 Ziffern).
M Der aktuelle Monat (2 Ziffern).
d Der aktuelle Tag (2 Ziffern).
h Die aktuelle Stunde (2 Ziffern).
m Die aktuelle Minute (2 Ziffern).
s Die aktuelle Sekunde (2 Ziffern).
Tabelle 32.1:  Platzhalter im Dateinamen Parameter

Wenn Sie also zum Beispiel das Protokoll in ein Verzeichnis namens logs unterhalb des Verzeichnisses der Testsuite schreiben und dabei einen Zeitstempel und den Rückgabewert erhalten wollen, verwenden Sie

-runlog %p/logs/%b-%y%M%d-%h%m%s-%r.qrl

Hinweis Die Platzhalter %b, %p und %P können auch für kollektive Parameter wir runid oder report verwendet werden. Wirklich Sinn macht das nur, falls nur eine einzelne Testsuite verarbeitet wird. Im Fall mehrerer Testsuites wird für diesen Fall der Name der ersten Testuite herangezogen.

32.3
Rückgabewerte von QF-Test

Wird QF-Test im normalen Modus ausgeführt, besitzt der Rückgabewert keine besondere Aussagekraft. Er ist entweder negativ, falls QF-Test nicht richtig startet, oder 0.

Im Batchmodus drückt der Rückgabewert dagegen das Ergebnis des Testlaufs aus. Negative Werte stehen für Fehler, die verhindern, dass der Test überhaupt gestartet wird, 0 für einen fehlerfreien Durchgang und positive Werte für Fehler während des Tests. Manche Systeme unterstützen nur Rückgabewerte zwischen 0 und 255. In diesem Fall sind alle Werte modulo 256 zu sehen, also -1=255, -2=254 etc.

Die folgenden Rückgabewerte sind zur Zeit definiert:

Wert Bedeutung
0 Alles OK
1 Beim Testlauf sind Warnungen aufgetreten
2 Beim Testlauf sind Fehler aufgetreten
3 Beim Testlauf sind Exceptions aufgetreten
-1 Unerwartete Exception
-2 Falsche Kommandozeilenargumente
-3 Keine oder ungültige Lizenz
-4 Fehler beim Aufbau der RMI Verbindung
-5 Fehler beim Laden der Suite
-6 Die Suite enthält keine Tests
Tabelle 32.2:  Rückgabewerte von QF-Test

Daneben gibt es spezielle Rückgabewerte, wenn QF-Test mit dem Argument -calldaemon ausgeführt wird:

Wert Bedeutung
-7 Der Daemon konnte nicht gefunden werden
-8 Fehler beim Erstellen eines TestRunDaemon-Objekts
-9 Fehler beim Erstellen eines Context-Objekts
-10 Der Test konnte nicht gestartet werden
-11 Der Test wurde innerhalb des angegeben Timeouts nicht beendet
Tabelle 32.3:  calldaemon-Rückgabewerte von QF-Test