4.0.3+54.7
ResetListener
Während der Testentwicklung ist es manchmal notwendig alle QF-Test Variablen zu löschen, sowie alle gestarteten Clients zu stoppen. Hierdurch wird sicher gestellt, dass eine spätere / darauffolgende Testausführung nicht wegen eines Seiteneffekts einer vorherigen fehlschlägt. Dieses Verhalten kann z.B. wegen fehlerhaft gesetzter globaler Variablen bzw. wegen eines sich im falschen Zustand befindenden Clients passieren.
Für das Zurücksetzen aller QF-Test Variablen und Clients bietet sich Menüaktion »Wiedergabe«-»Alles zurücksetzen« an. Mithilfe eines TestRunListeners ist es möglich diese Aktion an die eigenen Bedürfnisse anzupassen. Dadurch ist es z.B. möglich sicherzustellen, dass
- (bestimmte) clients bestehen bleiben
- bestimmte globale QF-Test Variablen wiederhergestellt werden
- bestimmte zusätzliche Aktionen ausgeführt werden, wie z.B. das Löschen globaler Jython variablen
Ein ResetListener stellt jede bei QF-Test registrierte Klasse dar, die das ResetListener
Interface de.qfs.apps.qftest.extensions.qftest.ResetListener
realisiert.
Zum Verwalten der bei QF-Test registrierten Klassen, stellt
der Runcontext die Methoden
addResetListener
, isResetListenerRegistered
und removeResetListener
bereit.
Das ResetListener Interface besteht hierbei aus den folgenden Methoden:
|
|
||||||||||||||||
Das folgende Beispiel beschreibt die Implementierung und Registrierung eines
ResetListners, der verhindert, dass die QF-Test Variable "client" durch
den Reset gelöscht wird, als auch dass das "client"
SUT beendet wird.
from java.util import HashSet from de.qfs.apps.qftest.extensions.qftest import ResetListener from de.qfs.apps.qftest.shared.exceptions import UnboundVariableException class L(ResetListener): def beforeReset(self): try: self.client = rc.getStr("client") h = HashSet() h.add(self.client) return h except UnboundVariableException: self.client = None def afterReset(self): if self.client != None: rc.setGlobal("client", self.client) global resetListener try: resetListener except: resetListener = L() rc.addResetListener(resetListener)