Конечно, WatiN на самом деле не о модульном тестировании, а об интеграции / функционале, но только потому, что вы запускаете модуль модульного тестирования, это не значит, что это должен быть модульный тест. Если вы пишете функциональные / интеграционные тесты, основанные на инфраструктуре модульных тестов, вы получаете бегуна, отчеты, интеграцию VS, как с модульным тестом, который является БОЛЬШИМ усилением, особенно если вы хотите запустить его на CI-сервере, где ваш тест выполняется каждый раз, когда новые сборка приложения развернута.
опытке запустить очень простой тест WatiN 2.0 (CTP3) в Visual Studio 2008 я обнаружил, что первый тест всегда выполняется нормально. Второй метод тестирования, кажется, что-то ломает в объекте IE, создавая следующее исключение:
Метод теста 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"));
}