Al intentar ejecutar una prueba WatiN 2.0 (CTP3) muy simple en Visual Studio 2008 encontré que la primera siempre se ejecuta correctamente. El segundo método de prueba parece romper algo en el objeto IE producir la siguiente excepción:WatiN en Visual Studio 2008 - falla el segundo método de prueba
Método de ensayo testProject.WatinTest.testTwo arrojó excepción: System.Runtime.InteropServices.InvalidComObjectException: objeto COM que ha sido separados de su RCW subyacente no se puede utilizarse ..
Un código de ejemplo está por debajo. Debido a la forma en que funciona el método de inicialización en VS2008, la variable del navegador debe definirse como static
, lo que creo que podría ser la clave del problema. Lamentablemente, a menos que el navegador se abra en el método común, significa una ventana separada para cada prueba que no es ideal
Estaría muy agradecido por cualquier idea sobre cómo solucionarlo. La búsqueda de Google y la búsqueda SO no arrojaron ningún resultado útil, por lo que espero que una buena respuesta a esta pregunta ayude a la comunidad. Muchas gracias,
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. Esa es una gran respuesta y realmente espero que ayude a muchas personas que tienen el mismo problema. También espero que ahora entre su blog y SO Google pueda dar sugerencias significativas cuando las personas busquen soluciones –
Tuve que usar el código de Nailuj (basado en su código) para obtener la última versión de WatiN. Sin embargo, estaba obteniendo excepciones en ClassCleanup y no puedo conseguir que el navegador elimine sin matar el proceso con Process.Kill() ... que es una solución fea :( –