Bei dem 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 brechen die folgende Ausnahme produzieren:WatiN in Visual Studio 2008 - zweite Testmethode schlägt fehl
Prüfnorm testProject.WatinTest.testTwo warf Ausnahme: System.Runtime.InteropServices.InvalidComObjectException: COM-Objekt, das war getrennt vom zugrunde liegenden RCW nicht verwendet ..
Ein Beispielcode ist unten werden kann. Aufgrund der Art, wie die Initialisierungsmethode in VS2008 funktioniert, muss die Browservariable als static
definiert werden, was meines Erachtens ein Schlüssel für das Problem sein könnte. Leider, wenn der Browser nicht in der üblichen Methode geöffnet wird, bedeutet dies 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 helfen wird. Vielen Dank,
private static IE ie
[ClassInitialize]
public static void testInit(TestContext testContext)
{
ie = new IE("http://news.bbc.co.uk");
}
[TestMethod]
public void testOne()
{
Assert.IsTrue(ie.ContainsText("Low graphics"));
}
[TestMethod]
public void testTwo()
{
Assert.IsTrue(ie.ContainsText("Low graphics"));
}
Brilliant, Jeroen. Das ist eine großartige Antwort und ich hoffe wirklich, dass es vielen Leuten helfen wird, die das gleiche Problem haben. Ich hoffe auch, dass jetzt zwischen Ihrem Blog und SO Google in der Lage sein wird, sinnvolle Vorschläge zu geben, wenn Menschen nach Lösungen suchen werden. –
Ich musste Nailujs Code (basierend auf Ihrem Code) für die neueste Version von WatiN verwenden. Ich bekam jedoch Ausnahmen bei ClassCleanup und konnte den Browser nicht entfernen, ohne den Prozess mit Process.Kill() zu beenden ... was eine hässliche Lösung ist :( –