Тесты WATIN завершаются с ошибкой TimeoutException при запуске из CruiseControl

У нас есть набор тестов WATIN, которые мы используем CruiseControl для запуска каждый час. Все тесты проходят на нашей локальной машине, но когда они запускаются с использованием CruiseControl, мы получаем спорадические сбои.

Мы используем CruiseControl из командной строки. Мы не пользуемся сервисом CruiseControl. Мы используем IE8.

Перед запуском каждого теста мы используем WATIN, чтобы закрыть все экземпляры браузера, чтобы убедиться, что каждый тест полностью изолирован.

Вот пример трассировки стека, которую мы наблюдаем при возникновении исключения:

Message: WatiN.Core.Exceptions.TimeoutException : Timeout while Internet Explorer busy 
at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.ThrowTimeOutException(Exception lastException, String message)
at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.HandleTimeOut()
at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.Try[T](DoFunc`1 func)
at WatiN.Core.WaitForCompleteBase.WaitUntil(DoFunc`1 waitWhile, BuildTimeOutExceptionMessage exceptionMessage)
at WatiN.Core.Native.InternetExplorer.WaitForComplete.WaitWhileIEBusy(IWebBrowser2 ie)
at WatiN.Core.Native.InternetExplorer.IEWaitForComplete.DoWait()
at WatiN.Core.DomContainer.WaitForComplete(IWait waitForComplete)
at WatiN.Core.IE.WaitForComplete(Int32 waitForCompleteTimeOut)
at WatiN.Core.DomContainer.WaitForComplete()
at WatiN.Core.Element.WaitForComplete()
at WatiN.Core.Element.Click()
at Symetra.Web.Core.AutomatedTesting.WatiNTests.CommonTests.LinkTest(Browser browser, String linkText, String message) in d:\Source\BuildArea\OSS\Symetra.Web.Core.AutomatedTesting\Symetra.Web.Core.AutomatedTesting.WatiNTests\Common\CommonTests.cs:line 63
at Symetra.Web.Core.AutomatedTesting.WatiNTests.CommonTests.LinkTest(Browser browser, String linkText) in d:\Source\BuildArea\OSS\Symetra.Web.Core.AutomatedTesting\Symetra.Web.Core.AutomatedTesting.WatiNTests\Common\CommonTests.cs:line 57
at Symetra.Web.Core.AutomatedTesting.WatiNTests.GlowTests.BreadCrumbFixture.testid1Test() in d:\Source\BuildArea\OSS\Symetra.Web.Core.AutomatedTesting\Symetra.Web.Core.AutomatedTesting.WatiNTests\GlowTests\BreadCrumbFixture.cs:line 72

Что мы делаем, чтобы предотвратить это? Я пробовал помещать Thread.Sleep () перед строками оскорбления. Похоже, это не действует. Я очень осторожно избегал использования Thread.Sleep () и использовал browser.WaitUntilContainsText.

Я искал StackOverflow и списки адресов электронной почты пользователей WATIN - похоже, у других людей были похожие проблемы, но я не нашел никаких решений.


person Community    schedule 17.07.2009    source источник


Ответы (2)


Мы используем Teamcity, но у нас была аналогичная проблема с IE7. Источник проблемы вскрыл IE. Вы уже упоминали, что используете Watin для закрытия всех открытых экземпляров. Но убедитесь, что вы используете ie.ForceClose (); в TearDown и SetUp.

person andreja    schedule 03.08.2009

У меня была такая же проблема с WaitUntil. Но это произошло только потому, что сайт не пользовался доверием на сервере и поэтому не открывался, поэтому у меня был тайм-аут.

Может у вас такая же проблема ...

person Pitming    schedule 17.09.2009