我感兴趣的是使用Steve Sanderson的MvcIntegrationTestFramework 或非常类似的替代和ASP.NET MVC3Beta。
目前,在针对MVC3Beta编译MvcIntegrationTestFramework时,由于MVC中的更改,我得到了以下错误:
Error 6
'System.Web.Mvc.ActionDescriptor.GetFilters()' is obsolete: '"Please call System.Web.Mvc.FilterProviders.Providers.GetFilters() now."'
\MvcIntegrationTestFramework\Interception\InterceptionFilterActionDescriptor.cs Line 18
问题
1.有没有人能提供ASP.NET MVC3Beta版的MvcIntegrationTestFramework?
-和/或--
2.你会推荐类似的替代方案吗?
编辑#1:备注我已经给MvcIntegrationTestFramework的创建者史蒂夫发了一封电子邮件,也希望能得到一些反馈。
编辑#2 & #3:我收到了史蒂夫的一条消息。引用供您参考:
我还不需要在MVC3中使用该项目,所以很抱歉,我没有它的更新版本。据我所知,应该可以更新它以在MVC3上工作,但您可能需要通过检查MVC3源代码来发现现在调用操作、过滤器等的任何变化。如果你更新了它,如果你决定采用它作为一个正在进行的项目(例如,把它放在Github或类似的),让我知道,我会发布一个链接到它!(谢谢Steve!)
编辑#4:老实说,曾快速尝试过使用System.Web.Mvc.FilterProviders.Providers.GetFilters()
,但并没有很快取得任何进展,简单地添加[Obsolete]
就会发现MVC请求的内部结构中有一个错误。还有没有人涉足过?
EDIT #5:如果您使用的是MVC3的替代集成测试框架,请发表评论。
发布于 2011-03-16 17:43:30
发布于 2010-12-17 02:53:25
我知道这不是您想要的答案,但是Selenium或Watin可能对您作为集成测试框架的替代方案有用。
Selenium将允许您将测试记录为nUnit代码,以便您可以与现有的测试项目等集成。然后,您的测试可以验证DOM,类似于集成测试框架。优点是Selenium测试可以在各种不同的浏览器上执行。
关键的警告是,Selenium需要将您的应用程序部署在web服务器上,不确定这是否会对您造成阻碍。
发布于 2012-12-15 13:11:50
我想我应该分享我在ASP.NET MVC4项目中使用MvcIntegrationTestFramework的经验。特别是,ASP.NET MVC4项目是Windows Azure Cloud Service的网络角色。
尽管Jon Canning的分支中的示例项目对我有效(尽管我确实将System.Web.Mvc程序集从3.0.0.0更改为4.0.0.0,这需要在web.config文件中进行大量编辑才能使测试运行和通过),但每当我尝试对ASP.NET Azure MVC4Web角色项目运行相同的测试时,我都会得到一个错误。错误是:
System.Reflection.TargetInvocationException:调用的目标引发了异常。
内部异常是:
System.InvalidOperationException:在应用程序的预启动初始化阶段不能调用此方法。
我开始想知道基于ASP.NET MVC4的Azure Web角色项目与普通的ASP.NET MVC4项目有什么不同,以及这种不同会如何导致这个错误。我在网上搜索了一下,但没有发现有人想做和我一样的事情。很快我就意识到这与Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener.有关。这个类的部分作用似乎是确保web角色在托管服务或Development Fabric中运行(如果您将启动项目从云服务项目切换到云服务解决方案中的web角色项目,然后尝试进行调试,您将看到一条关于此效果的消息)。
解决方案是什么?我从我的网络角色项目的Web.config文件中删除了相应的侦听器:
<configuration>
...
<system.diagnostics>
<trace>
<listeners>
<!--Remove this next 'add' element-->
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="AzureDiagnostics"> <filter type="" /> </add>
</listeners>
</trace>
</system.diagnostics>
...
</configuration>
然后,我可以正常地对我的Web角色项目运行集成测试。但是,我将侦听器添加到Web.Debug.config和Web.Release.config转换文件中,以便正常部署和调试的一切仍然相同。
也许这会对那些希望使用MvcIntegrationTestFramework进行Azure开发的人有所帮助。
Azure编辑我刚刚意识到这个解决方案可能有点“黑客”,因为它可能不让你对与组件相关的应用程序代码进行集成测试(例如,可能是特殊的Azure缓存机制)。也就是说,我还没有遇到任何与此相关的问题,尽管我也还没有真正编写过很多集成测试……
https://stackoverflow.com/questions/4278790
复制相似问题