Ich entwickle eine Squish-Suite mit Python, die es Benutzern ohne Softwareentwicklungsfähigkeiten erlauben soll, Testfälle für GUI-Anwendungen aufzuzeichnen. Einige der Squish-Methoden sollten geändert/erweitert werden, um unsere speziellen Bedürfnisse zu erfüllen, und deshalb schreibe ich einen Wrapper, der die Squish-Methoden überschreibt.Python: Überschreiben von Squish-Methoden, die nach der Laufzeit injiziert werden
Daher wäre es am besten, wenn der Benutzer so wenig wie möglich aus dem aufgezeichneten Code ändern muss. Ich möchte nicht, dass der Benutzer "Mywrapper" hinzufügen muss. vor jedem Methodenaufruf.
Also dachte ich, ich , einfach "von mywrapper import *"
Mit mywrapper enthält Methoden mit dem gleichen Namen wie die squich Methoden, zum Beispiel:
def waitForObjectItem(object, item, timeout=None):
// do additional stuff
return squish.waitForObjectItem(object, item, timeout)
Das Problem ist, dass (aus Die Squish-Website):
Squish-Funktionen und Member werden zur Laufzeit in das Squish-Modul injiziert, nachdem das Testskript an einer Anwendung gestartet/angehängt wurde.
Daher wird der importierte Code von Mywrapper nicht verwendet.
Wie kann ich zwingen, dass mein Code anstelle des Squish-Codes ohne weitere Änderungen der Testfallaufzeichnung ausgeführt wird.