Beim Versuch, einen sehr einfachen WatiN 2.0 (CTP3) -Test in Visual Studio 2008 auszuführen, habe ich festgestellt, dass der erste immer einwandfrei funktioniert. Die zweite Testmethode scheint etwas in dem IE-Objekt zu brechen, das die folgende Ausnahme erzeugt:
Testmethode testProject.WatinTest.testTwo warf Ausnahme: System.Runtime.InteropServices.InvalidComObjectException: COM-Objekt, das getrennt wurde von seinem zugrunde liegenden RCW kann nicht sein verwendet ..
Ein Beispielcode ist unten. Aufgrund der Art, wie die Initialisierungsmethode in VS2008 funktioniert, muss die Browservariable als static
definiert werden, was meiner Meinung nach ein Schlüssel zum Problem sein könnte. Wenn der Browser nicht in der allgemeinen Methode geöffnet wird, bedeutet das leider ein separates Fenster für jeden Test, der nicht ideal ist
Ich wäre sehr dankbar für irgendwelche Ideen, wie das zu beheben ist. Die Google-Suche und die SO-Suche haben keine nützlichen Ergebnisse erbracht, daher hoffe ich, dass eine gute Antwort auf diese Frage der Community hilft. Vielen Dank,
%Vor%Ich habe dieses Problem schon einmal gehört und wollte es eine Weile untersuchen. Jetzt, da WatiN 2.0 Beta 1 verfügbar ist, setzte ich mich hin und erstellte eine Hilfsklasse, um dieses Problem mit dem Visual Studio Test Runner zu lösen. Nach der Helferklasse und der überarbeiteten Testklasse. Ich habe auch über diese Lösung gebloggt , um sie noch mehr zu präsentieren .
%Vor%Und die Testklasse, die diesen Helfer benutzt:
%Vor%HTH, Jeroen
Ich habe nach dem gleichen Ding gesucht, und die Antwort von jvmenen hat mir geholfen. Es gab jedoch einige Aktualisierungen von WatiN, da diese Antwort gegeben wurde, daher musste ich die Hilfsklasse etwas umschreiben, um mit der neuesten WatiN-Version (derzeit 2.0.20) konsistent zu sein.
WatiN enthält nicht mehr die Funktion IE.AttachToIE
, also musste ich das ein bisschen ändern. Außerdem habe ich auch die Hilfsklasse mit Generics gemacht, so dass jeder Browsertyp verwendet werden kann und nicht nur IE (ich glaube IE und Firefox werden jetzt von WatiN unterstützt und Chrome soll kommen).
Wenn also auch noch jemand danach sucht, ist hier meine Version von IEStaticInstanceHelper
(jetzt StaticBrowserInstanceHelper
genannt):
Hoffe das hilft jemandem:)
Ich denke, es hängt damit zusammen, wie Sie die IE-Variable halten. Ich habe es ohne Probleme wie im Beispiel verwendet: Ссылка . Ich sehe Wattingtests als mehr funktionale / Integrationstests als Komponententests, so dass jeder Test mehr wie eine Geschichte mit verschiedenen Interaktionen ist. Ich verwende das Page Object-Muster, um den Code zu strukturieren - siehe Ссылка .
Ps. Ich habe überlegt, die Instanz wiederzuverwenden, habe sie aber nicht wirklich ausprobiert. Das Öffnen / Schließen von Instanzen des Browsers fügt den Tests Zeit hinzu.
Tags und Links visual-studio testing automation watin