7

CruiseControl を使用して 1 時間ごとに実行する WATIN テストのコレクションがあります。ローカル マシンではすべてのテストに合格しますが、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 ユーザーのメーリング リストを検索しました。他の人も同様の問題を抱えているようですが、解決策は見つかりませんでした。

4

2 に答える 2

3

Teamcity を使用していますが、IE7 でも同様の問題がありました。問題の原因は IE でした。Watin を使用して、開いているすべてのインスタンスを閉じることは既に述べています。ただし、必ず ie.ForceClose(); を使用してください。ティアダウンとセットアップで。

于 2009-08-03T09:51:52.660 に答える
0

WaitUntil でも同じ問題がありました。しかし、それは、サイトがサーバー上で信頼されていなかったため、開かなかったため、タイムアウトが発生しました。

たぶん、同じ問題が発生します...

于 2009-09-17T08:17:18.627 に答える