Chúng tôi có một bộ sưu tập kiểm tra WATIN chúng tôi đang sử dụng CruiseControl để chạy mỗi giờ. Tất cả các bài kiểm tra vượt qua trên máy địa phương của chúng tôi - nhưng khi chúng được chạy bằng CruiseControl, chúng tôi nhận được các lỗi không thường xuyên.Kiểm tra WATIN thất bại với TimeoutException khi chạy từ CruiseControl
Chúng tôi đang sử dụng CruiseControl bằng dòng lệnh. Chúng tôi không sử dụng dịch vụ CruiseControl. Chúng tôi đang sử dụng IE8.
Trước mỗi lần chạy thử - chúng tôi sử dụng WATIN để đóng tất cả các phiên bản của trình duyệt để đảm bảo mỗi thử nghiệm được phân lập hoàn toàn.
Dưới đây là một ví dụ về stack trace chúng ta đang thấy khi ngoại lệ được ném:
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
Có bất cứ điều gì chúng ta làm gì để ngăn chặn điều này? Tôi đã thử đặt Thread.Sleep() trước các dòng vi phạm. Điều đó dường như không có hiệu lực. Tôi đã khá cẩn thận để tránh Thread.Sleep() - và sử dụng browser.WaitUntilContainsText.
Tôi đã tìm kiếm danh sách email StackOverflow và WATIN của người dùng - có vẻ như những người khác đã gặp sự cố tương tự nhưng tôi không thấy bất kỳ giải pháp nào.
mẹo tốt, đóng không phải lúc nào cũng như vậy. – dove