华廷测试与TimeoutException异常未能从CruiseControl的运行时(WATIN

2019-09-19 10:13发布

我们有我们使用CruiseControl的运行每小时华廷测试的集合。 所有测试都通过了我们的本地计算机上 - 但是当他们正在使用CruiseControl的运行,我们得到零星故障。

我们正在使用CruiseControl的使用命令行。 我们不使用CruiseControl的服务。 我们正在使用IE8。

运行每次测试之前 - 我们使用华廷关闭浏览器的所有实例,以确保每个测试是完全隔离的。

下面是当发生异常时,我们所看到的堆栈跟踪的一个例子:

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和华廷用户的邮件列表 - 似乎其他人有过类似的问题,但我没有看到任何解决方案。

Answer 1:

我们使用TeamCity的,但我们也有类似的问题,IE7。 问题的起源是打开IE浏览器。 你已经提到你使用华廷关闭所有打开的实例。 但要确保您使用ie.ForceClose(); 在TearDown中和设置。



Answer 2:

我有同样的问题,最好推迟。 但是,只是因为该网站不被信任的服务器上,所以没开,所以我得到一个超时。

也许你会得到同样的问题...



文章来源: WATIN tests failing with TimeoutException when run from CruiseControl