Мы используем Watin и CruiseControl.net уже несколько недель, и большую часть времени они хорошо работают вместе. У нас не было проблем с запуском тестов на наших машинах для разработчиков. Мы также можем без проблем запускать тесты в интерактивном режиме при входе на CI-сервер.
В большинстве случаев также не возникает проблем, когда тесты выполняются в CruiseControl, но это не всегда так, поскольку в последнее время мы наблюдаем периодические ошибки. Ошибки кажутся случайными и случайными, но когда ошибка возникает, это всегда одно из следующего:
WatiN.Core.Exceptions.TimeoutException: время ожидания, пока Internet Explorer занят
System.Runtime.InteropServices.COMException: Создание экземпляра COM-компонента с CLSID {0002DF01-0000-0000-C000-000000000046} из IClassFactory не удалось из-за следующей ошибки: 800704a6
Наша серверная среда CI:
«Случайно» провальные тесты создают свои экземпляры IE следующим образом:
[TestMethod]
public void SomeTest()
{
using (var browser = new IE())
{
// run tests here
}
}
Я также попытался создать IE в новом процессе следующим образом:
[TestMethod]
public void SomeTest()
{
using (var browser = new IE( true))
{
// run tests here
}
}
Но когда я это сделал, все наших тестов завершились неудачно с «WatiN.Core.Exceptions.BrowserNotFoundException: не удалось найти ограничение соответствия окна IE: время ожидания при ожидании подключения к вновь созданному экземпляру IE .. Поиск истек через 30 секунд »
Итак, у меня два вопроса:
- Может кто-нибудь сказать мне, как я могу остановить тайм-ауты и ком-исключения?
- Может кто-нибудь объяснить, почему IE (true) вообще не работал?
ТИА,
Mike