2017-04-07 1 views
0

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.

Antwort

0

Es ist möglich, "Mywrapper" innerhalb der Hauptfunktion statt am oberen Rand des Dokuments zu importieren. Daher wird es nicht importiert, bis die Funktion ausgeführt wird und daher erst nach der Injektion der Saftmethoden.

Verwandte Themen