При попытке запустить очень простой тест WatiN 2.0 (CTP3) в Visual Studio 2008 я обнаружил, что первый всегда выполняется отлично. Второй метод тестирования, кажется, сломать что-то в объекте IE производит следующее исключение:WatiN в Visual Studio 2008 - второй метод тестирования не работает
Метод испытания testProject.WatinTest.testTwo бросил исключение: System.Runtime.InteropServices.InvalidComObjectException: COM объекта, который был разделенных от лежащих в его основе RCW не может быть использован ..
пример кода ниже. Из-за того, как метод инициализации работает в VS2008, переменная браузера должна быть определена как static
, которая, я считаю, может быть ключом к проблеме. К сожалению, если браузер не открыт в обычном методе, это означает отдельное окно для каждого теста, который не является идеальным.
Я был бы очень признателен за любые идеи о том, как исправить это. Поиск в Google и поиск SO не дали полезных результатов, поэтому я надеюсь, что хороший ответ на этот вопрос поможет сообществу. Большое спасибо,
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"));
}
Блестящий, Jeroen. Это отличный ответ, и я очень надеюсь, что это поможет многим людям, которые имеют такую же проблему. Кроме того, я надеюсь, что теперь между вашим блогом и SO Google будет в состоянии дать содержательные предложения, когда люди будут искать решения. –
Мне пришлось использовать код Nailuj (на основе вашего кода) для последней версии WatiN. Тем не менее, я получал исключения в ClassCleanup и не мог заставить браузер распоряжаться, не убивая процесс с Process.Kill() ... который является уродливым решением :( –