3.1+52.7
Listener für den aktuellen Testlauf

Einmal beim aktuellen Runcontext via rc.addTestRunListener registriert, wird eine Implementierung des TestRunListener Interfaces benachrichtigt, wenn ein Knoten betreten oder verlassen wird oder wenn Probleme auftreten. Ein illustratives Beispiel finden Sie in der Testsuite TestRunListener.qft im Verzeichnis demo/runlistener Ihrer QF-Test Installation. Am besten deaktivieren Sie den Debugger, bevor Sie diese Testsuite komplett ausführen.

Hinweis Eine Variante des TestRunListener Interfaces namens DaemonTestRunListener kann verwendet werden, um einen Testlauf über das Daemon API zu beobachten. Es wird in Abschnitt 53.2.5 näher beschrieben.

Das API besteht aus den folgenden Klassen:

Das TestRunListener Interface

Das Interface de.qfs.apps.qftest.extensions.qftest.TestRunListener muss implementiert und via rc.addTestRunListener() beim aktuellen Runcontext registriert werden.

Hinweis Zur Implementierung des Interfaces können Sie von der Klasse de.qfs.apps.qftest.extensions.qftest.AbstractTestRunListener ableiten, die für alle Methoden leere Implementierungen bereitstellt, so dass Sie nur die Methoden implementieren müssen, die Sie interessieren.

 
 
void nodeEntered(TestRunEvent event)
Benachrichtigt den Listener, dass ein Knoten betreten wurde.
Parameter
event Der Event mit den Details.
 
void nodeExited(TestRunEvent event)
Benachrichtigt den Listener, dass ein Knoten verlassen wurde.
Parameter
event Der Event mit den Details.
 
void problemOccurred(TestRunEvent event)
Benachrichtigt den Listener, dass ein Problem aufgetreten ist.
Parameter
event Der Event mit den Details.
 
void runStarted(TestRunEvent event)
Benachrichtigt den Listener, dass ein Testlauf gestartet wurde.
Parameter
event Der Event mit den Details, in diesem Fall irrelevant.
 
void runStopped(TestRunEvent event)
Benachrichtigt den Listener, dass ein Testlauf beendet wurde.
Parameter
event Der Event mit den Details, in diesem Fall irrelevant.
 
 

Die Klasse TestRunEvent

Die Klasse de.qfs.apps.qftest.extensions.qftest.TestRunEvent beinhaltet Informationen über die aktuell ausgeführten Knoten und den aktuellen Fehlerzustand. Sie definiert die folgenden Konstanten für Ausführungs- und Fehlerzustände: STATE_NOT_IMPLEMENTED, STATE_SKIPPED, STATE_OK, STATE_WARNING, STATE_ERROR und STATE_EXCEPTION. Die beiden ersten Zustände kommen nur bei 'Testfallsatz' und 'Testfall' Knoten vor.

In der runStopped Methode können Sie auch abfragen, ob der Testlauf normal beendet oder unterbrochen wurde. Hierfür können Sie die Konstanten STATE_RUN_TERMINATED und STATE_RUN_INTERRUPTED verwenden.

 
 
JsonObject asJsonValue()
Serialisiert das Event-Objekt als JsonObject. Dieses kann verwendet werden, um den Datenaustausch mit json-basierten Tools wie Web-Services oder Datenbanken zu vereinfachen. Die API der in QF-Test eingebetten Json-Bibliothek ist in doc/javadoc/json.zip in Ihrer QF-Test Installation dokumentiert.
Rückgabewert Das Event als JsonObject.
 
int getErrors()
Liefert die Zahl der Fehler für den Knoten.
Rückgabewert Die Gesamtzahl der Fehler für den gerade verlassenen Knoten. Verfügbar nur für nodeExited.
 
int getExceptions()
Liefert die Zahl der Exceptions für den Knoten.
Rückgabewert Die Gesamtzahl der Exceptions für den gerade verlassenen Knoten. Verfügbar nur für nodeExited.
 
int getLocalState()
Liefert den lokalen Status für den aktuellen Knoten.
Rückgabewert Der lokale Status für den aktuellen Knoten. Dies ist der höchste Fehlerzustand dieses Knotens und all seiner Kinder, unabhängig davon ob dieser weiter nach oben propagiert. Verfügbar nur für nodeExited und problemOccurred. Für 'Testfallsatz' und 'Testfall' Knoten kann der lokale Staus auch STATE_SKIPPED oder STATE_NOT_IMPLEMENTED sein.
 
String getMessage()
Liefert die aktuelle Fehlermeldung.
Rückgabewert Die Meldung für die aktuelle Warnung, Fehler oder Exception. Verfügbar nur für problemOccurred.
 
TestSuiteNode getNode()
Liefert den aktuellen Knoten
Rückgabewert Der aktuelle Knoten oder null für runStarted und runStopped.
 
TestSuiteNode[] getPath()
Liefert den gesamten Pfad für den aktuellen Knoten.
Rückgabewert Der Pfad für den aktuellen Knoten aus Sicht des Protokolls, vergleichbar mit dem Ausführungs-Stapel. Null für runStarted und runStopped. Der letzte Knoten im Array ist der aktuelle Knoten.
 
int getState()
Liefert den Status für den aktuellen Knoten.
Rückgabewert Der propagierende Status für den aktuellen Knoten. Dies ist der höchste Fehlerzustand dieses Knotens und all seiner Kinder, möglicherweise beschränkt durch ein Attribut 'Maximaler Fehler'. Verfügbar nur für nodeExited und problemOccurred.
 
int getWarnings()
Liefert die Zahl der Warnungen für den Knoten.
Rückgabewert Die Gesamtzahl der Warnungen für den gerade verlassenen Knoten. Verfügbar nur für nodeExited.
 
 

Die Klasse TestSuiteNode

Die Klasse de.qfs.apps.qftest.extensions.qftest.TestSuiteNode repräsentiert einen aktuell ausgeführten QF-Test Knoten. Sie beinhaltet Informationen über die Art des Knotens, seinen Namen, Kommentar, etc.

 
 
JsonObject asJsonValue()
Serialisiert das Knoten-Objekt als JsonObject.
Rückgabewert Der Knoten als JsonObject.
 
String getComment()
Liefert die Bemerkung des Knotens.
RückgabewertDie expandierte Bemerkung des Knotens.
 
String getComponentId()
Liefert die QF-Test ID der Komponente des Knotens, falls verfügbar.
RückgabewertDie expandierte QF-Test ID der Komponente des Knotens.
 
String getExpandedTreeName()
Liefert den expandierten "Baumnamen" des Knotens.
Rückgabewert Der Name des Knotens, wie er im Baum der Testsuite dargestellt wird, wobei Variablen durch deren Inhalt ersetzt sind.
 
String getId()
Liefert die QF-Test ID des Knotens.
RückgabewertDie QF-Test ID des Knotens.
 
String getName()
Liefert den Namen des Knotens.
Rückgabewert Der Name des Knotens oder null, falls dieser kein Attribut 'Name' besitzt.
 
String getReportName()
Liefert den Reportnamen des Knotens.
Rückgabewert Der expandierte Reportname für 'Testfallsatz' und 'Testfall' Knoten. Der normale Name für andere Knoten oder null falls nicht definiert.
 
String getSuite()
Liefert die Testsuite, zu der der Knoten gehört.
RückgabewertDer komplette Pfad der Testsuite, zu der der Knoten gehört.
 
String getTreeName()
Liefert den "Baumnamen" des Knotens.
Rückgabewert Der Name des Knotens wie er im Baum der Testsuite dargestellt wird.
 
String getType()
Liefert die Art des Knotens.
Rückgabewert Die Art des Knotens. Dies ist der letzte Teil des Namens der Klasse, die diesen Knoten implementiert.
 
String getVerboseReportName()
Liefert den Reportnamen bzw. den Namen des Knotens.
Rückgabewert Der expandierte Reportname für 'Testfallsatz' und 'Testfall' Knoten. Falls nicht vorhanden wird der expandierte Knotennamen zurückgegeben.