从CruiseControl运行时,WATIN测试因TimeoutException失败

从CruiseControl运行时,WATIN测试因TimeoutException失败,watin,cruisecontrol,Watin,Cruisecontrol,我们有一组WATIN测试,我们使用CruiseControl每小时运行一次。所有的测试都在本地机器上通过——但是当它们使用CruiseControl运行时,我们会偶尔出现故障 我们正在使用CruiseControl命令行。我们没有使用CruiseControl服务。我们正在使用IE8 在运行每个测试之前,我们使用WATIN关闭浏览器的所有实例,以确保每个测试完全隔离 下面是引发异常时我们看到的堆栈跟踪示例: Message: WatiN.Core.Exceptions.TimeoutExcept

我们有一组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用户的电子邮件列表-似乎其他人也有类似的问题,但我没有看到任何解决方案。

我们正在使用Teamcity,但我们在IE7上也有类似的问题。问题的根源已打开,即您已经提到您使用Watin关闭所有打开的实例。但请确保使用ie.ForceClose();在拆卸和设置中

我也有同样的等待问题。但这仅仅是因为该网站在服务器上不受信任,所以没有打开,所以我暂停了访问

也许你也会遇到同样的问题