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