Asp.net mvc 通过MbUnit使用WatiN测试ASP.NETMVCWeb应用程序

Asp.net mvc 通过MbUnit使用WatiN测试ASP.NETMVCWeb应用程序,asp.net-mvc,unit-testing,watin,mbunit,Asp.net Mvc,Unit Testing,Watin,Mbunit,我试图将一些WatiN UI测试应用到我的新ASP.NETMVC应用程序中,通过MbUnit运行WatiN测试,但遇到了一些困难 如果我完全按照上面的说明操作,那么谷歌主页就会加载,插入文本,搜索完成,测试通过。(这里没问题) 但是,当我简单地更改行的URL时 var ie = new IE(new Uri("http://www.google.co.uk")); 通过IIS(在Win7上)访问我的电脑上托管的网站,(例如,访问http://localhost/myapp/)我的应用程序的主页

我试图将一些WatiN UI测试应用到我的新ASP.NETMVC应用程序中,通过MbUnit运行WatiN测试,但遇到了一些困难

如果我完全按照上面的说明操作,那么谷歌主页就会加载,插入文本,搜索完成,测试通过。(这里没问题)

但是,当我简单地更改行的URL时

var ie = new IE(new Uri("http://www.google.co.uk"));
通过IIS(在Win7上)访问我的电脑上托管的网站,(例如,访问
http://localhost/myapp/
)我的应用程序的主页加载正常,但测试运行者似乎仍在等待页面已加载的确认,然后测试因超时而失败

以下是IDE中失败的响应

*** 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

其他人都明白了,还是只有我一个人?

在locahost上测试一个网站应该没有明显的区别

两个可能的原因:

  • 如果您的网页包含任何重要的AJAX,那么页面可能从未完全加载,因此WatiN会一直等待

  • 我已经修复了WatiN中一两个与检测页面已完全加载相关的bug。您可以尝试获取WatiN主干源代码并构建最新代码的新副本


  • 如果这些都没有帮助的话,WatiN也有一些“NoWait”变体,比如点击。您还可以通过注册WaitForComplete处理程序来覆盖等待页面完成对WatiN的意义。

    在locahost上测试网站应该没有显著差异

    两个可能的原因:

  • 如果您的网页包含任何重要的AJAX,那么页面可能从未完全加载,因此WatiN会一直等待

  • 我已经修复了WatiN中一两个与检测页面已完全加载相关的bug。您可以尝试获取WatiN主干源代码并构建最新代码的新副本


  • 如果这些都没有帮助的话,WatiN也有一些“NoWait”变体,比如点击。您还可以通过注册WaitForComplete处理程序来覆盖等待页面完成对WatiN的意义。

    当我有一个未加载的资源引用时,我就遇到了这种情况

    • 是否有对不存在的JS、CSS或图像文件的引用
    • 如果使用查看HTTP流量,您是否看到任何连接超时

    当我引用了一个未加载的资源时,我就遇到了这种情况

    • 是否有对不存在的JS、CSS或图像文件的引用
    • 如果使用查看HTTP流量,您是否看到任何连接超时

    确保程序以管理员身份运行。在Win7上,它将加载页面,但Watin无法访问DOM,除非Visual Studio或Gallio Icarus以管理员权限启动。

    确保程序以管理员身份运行。在Win7上,它将加载页面,但Watin无法访问DOM,除非Visual Studio或Gallio Icarus以管理员权限启动。

    我完全同意;我不明白为什么这个网站应该有什么不同,尤其是因为它是一个发布(输出)的网站!但是我使用的是WatiN的最新版本,因为我昨天才下载了它。但是没有,没有AJAX——这是一个MVC web应用程序的主页,除了顶部拖入一个CSS页面之外,没有什么更令人兴奋的了;我刚刚检查了我从sourceforge网站下载的文件,它是WatiN-2.0.10.928-net-2.0.zip。有更新的代码库吗?那个测试版已经很旧了。Gallio v3.1更新1附带了更新版本,作为其WatiN示例的一部分。您也可以从WatiN主干构建自己的。我知道Jeroen正在努力推出新版本,但还没有准备好。然而@orip关于引用缺失资源的评论是好的,我完全同意;我不明白为什么这个网站应该有什么不同,尤其是因为它是一个发布(输出)的网站!但是我使用的是WatiN的最新版本,因为我昨天才下载了它。但是没有,没有AJAX——这是一个MVC web应用程序的主页,除了顶部拖入一个CSS页面之外,没有什么更令人兴奋的了;我刚刚检查了我从sourceforge网站下载的文件,它是WatiN-2.0.10.928-net-2.0.zip。有更新的代码库吗?那个测试版已经很旧了。Gallio v3.1更新1附带了更新版本,作为其WatiN示例的一部分。您也可以从WatiN主干构建自己的。我知道Jeroen正在努力推出新版本,但还没有准备好。然而@orip关于引用缺少的资源的评论是好的。你能提供一些证据来支持你的回答吗?这只是我的一般经验。另外,你能提供一些证据来支持你的回答吗?只是我的一般经验。也和