2009-07-17 2 views
7

우리는 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 사용자의 전자 메일 목록을 검색했습니다. 다른 사람들과 비슷한 문제가 있지만 솔루션을 찾지 못했던 것 같습니다.

답변

3

Teamcity를 사용하고 있지만 IE7에서도 비슷한 문제가있었습니다. 문제의 기원이 IE에 열렸습니다. 이미 열려있는 모든 인스턴스를 닫으려면 Watin을 사용한다고 언급했습니다. 하지만 ie.ForceClose(); TearDown 및 SetUp에서.

+0

좋은 팁, 가까운 것이 항상 그렇게 보이지는 않습니다. – dove

0

WaitUntil과 동일한 문제가있었습니다. 하지만 사이트가 서버에서 신뢰되지 않아서 열리지 않아서 시간이 부족했기 때문입니다.

어쩌면 당신은 똑같은 문제를 겪을 것입니다 ...

관련 문제