2009-07-17 2 views
7

У нас есть коллекция тестов WATIN, которые мы используем CruiseControl для запуска каждый час. Все тесты проходят на нашей локальной машине, но когда они запускаются с помощью CruiseControl, мы получаем спорадические сбои.Тесты WATIN не работают с TimeoutException при запуске с 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 - похоже, у других людей были подобные проблемы, но я не видел никаких решений.

ответ

3

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

+0

Хороший отзыв, рядом не всегда получается. – dove

0

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

Возможно, у вас возникли те же проблемы ...

Смежные вопросы