2009-11-07 4 views
1

MbUnit을 통해 WatiN 테스트를 실행하면서 새로운 ASP .Net MVC 응용 프로그램에 일부 WatiN UI 테스트를 적용하려고하지만 몇 가지 어려움이 있습니다.WatiN에서 MbUnit을 사용하여 ASP .Net MVC 웹 응용 프로그램을 테스트합니다.

this page의 지침 (정확하게)을 따르면 Google 홈페이지가로드되어 텍스트가 삽입되고 검색이 완료되고 테스트가 통과됩니다. (문제 없음).

그러나, 나는 단순히 (Win7에에) IIS를 통해 내 PC에서 호스팅되는 웹 사이트 (예를 들어 http://localhost/myapp/에) 내 응용 프로그램이로드의 홈페이지에 줄의 URL ...

var ie = new IE(new Uri("http://www.google.co.uk")); 

을 변경할 때 테스트 러너는 페이지가로드되고 시간 초과로 인해 테스트가 실패했다는 확인을 기다리고있는 것처럼 보입니다.

다음

다른

*** Failures *** 
Exception 
WatiN.Core.Exceptions.TimeoutException: Timeout while Internet Explorer state not complete 
    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.WaitWhileIEReadyStateNotComplete(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.Browser.GoTo(Uri url) 
    at WatiN.Core.IE.FinishInitialization(Uri uri) 
    at WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess) 
    at WatiN.Core.IE..ctor(Uri uri) 
    at FppRendersUI.Test.Program.DoSomething() in C:\Dev\MyCode.Test\Program.cs:line 18 

누구나이 얻을 ... IDE 내에서 실패한 응답, 또는 그것은 단지 나입니까?

답변

3

locahost에 웹 사이트를 테스트 할 때 중요한 차이가 없어야합니다.

두 가지 가능한 원인 : 웹 페이지는 상당한 AJAX를 포함

  1. 경우 다음 페이지가 WatiN 그냥 기다리고 계속 그래서 완전히로드 된 것으로 보인다 결코 가능합니다.

  2. WatiN에서 하나 또는 두 개의 버그를 수정 한 다음 페이지가 완전히로드되었음을 감지하는 것과 관련이 있습니다. WatiN 트렁크 소스를 가져 와서 최신 코드를 새로 만들 수 있습니다.

아무 도움이되지 않으면 WatiN도 "클릭 금지"와 같은 몇 가지 동작이있는 "NoWait"변형이 있습니다. 또한 WaitForComplete 핸들러를 등록하여 페이지 완성을 기다리는 WatiN의 의미를 무시할 수 있습니다.

+0

전적으로 동의합니다. 어쨌든이 웹 사이트가 다른 웹 사이트 인 이유를 알 수 없습니다. 특히 출판 된 (출력) 사이트의 경우 그렇습니다. 하지만 어제 다운로드 한 WatiN 최신 버전을 사용하고 있습니다. –

+0

아니요, AJAX는 없습니다. MVC 웹 애플리케이션의 홈페이지로 CSS 페이지가 맨 위에 드래그 된 것보다 더 재미 있습니다. –

+0

또한, 다운로드 한 파일을 체크했는데, 소스 포지 웹 사이트의 WatiN-2.0.10.928-net-2.0.zip입니다. 더 새로운 코드베이스가 있습니까? –

2

로드하지 않은 리소스에 대한 참조가있을 때이 문제가 발생했습니다.

  • 존재하지 않는 JS, CSS 또는 이미지 파일에 대한 참조가 있습니까?
  • Fiddler으로 HTTP 트래픽을 살펴보면 연결 시간이 초과 된 것으로 보입니까?
0

프로그램이 관리자 권한으로 실행되고 있는지 확인하십시오. Win7에서는 페이지를로드하지만 Visual Studio 또는 Gallio Icarus가 관리자 권한으로 시작되지 않는 한 Watin은 DOM에 액세스 할 수 없습니다.

+0

답변을 뒷받침하는 몇 가지 증거를 제공해주세요. – Odys

+0

일반적으로 내 경험. 또한 http://codeblog.theg2.net/2009/12/watin-20-and-gallio-31-in-x64.html 및 http://stackoverflow.com/questions/1014815/how-do-you-get -watin-to-work-on-windows-server-2008-with-ie8 –

관련 문제