우리는 CruiseControl을 사용하여 매시간 실행하는 WATIN 테스트 콜렉션을 보유하고 있습니다. 모든 테스트는 로컬 시스템을 통과하지만 CruiseControl을 사용하여 실행하면 산발적 인 오류가 발생합니다.CruiseControl에서 실행하면 TimeoutException으로 WATIN 테스트가 실패합니다.
우리는 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