设为首页 收藏本站
查看: 1512|回复: 1

[经验分享] asp.net mvc 自动化测试工具

[复制链接]

尚未签到

发表于 2017-12-29 10:46:18 | 显示全部楼层 |阅读模式
1  var controllerOfMvc = Activator.CreateInstance(controllerDescription.ControllerType) as Controller;  

2  
3                             IHttpRouteData routeData = GlobalContext.config.Routes.GetRouteData(requestMessage);
  
4                             var mvcRouteData = new RouteData();
  
5                             var paras = new Dictionary<string, object>();
  
6                             foreach (var item in routeData.Values)
  
7                             {
  
8                                 mvcRouteData.Values.Add(item.Key, item.Value);
  
9                                 paras.Add(item.Key, item.Value);
  
10                             }
  
11                             var ctrlContext = new ControllerContext(httpContextBase, mvcRouteData, controllerOfMvc);
  
12                             var actionDescription = controllerDescription.FindAction(ctrlContext, actionName);
  
13
  
14                             if (null != actionDescription)
  
15                             {
  
16                                 var actionResult = actionDescription.Execute(ctrlContext, paras) as ActionResult;
  
17
  
18                                 string resultText = string.Empty;
  
19                                 if (actionResult is JsonResult)
  
20                                 {
  
21                                     var data = (actionResult as JsonResult).Data;
  
22                                     resultText = JsonConvert.SerializeObject(data);//序列化数据
  
23
  
24                                 }
  
25                                 else if (actionResult is ViewResult || actionResult is PartialViewResult)
  
26                                 {
  
27                                     //解析模板  实现的核心就是  视图文件虚拟化 VirtualPathProvider and 动态编译   var clientBuildManager = new ClientBuildManager(rootVirtualPath, GlobalContext.SitePhysicDir);
  
28                                     /*
  
29                                      如果  有需要  可以尝试开发出来。参考资料:
  
30                                      http://blog.rebuildall.net/2009/11/17/asp_net_mvc_and_virtual_views
  
31                                      https://blog.falafel.com/how-to-load-views-from-assembly-in-mvc/
  
32                                      https://msdn.microsoft.com/en-us/library/system.web.hosting.virtualpathprovider(v=vs.110).aspx
  
33                                      http://www.binaryintellect.net/articles/e544d1d3-e47e-4ced-bd4d-8c1eaefbdc31.aspx
  
34                                      http://www.danielroot.info/2013/07/reuse-mvc-views-using-virtual-path.html
  
35                                      https://github.com/aspnet/Mvc/issues/3750
  
36                                      http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/
  
37                                      https://stackoverflow.com/questions/236972/using-virtualpathprovider-to-load-asp-net-mvc-views-from-dlls
  
38                                      https://stackoverflow.com/questions/24341336/is-it-possible-to-access-mvc-views-located-in-another-project
  
39                                      http://ericsowell.com/blog/2007/4/3/the-asp-net-virtual-path-provider-an-example-implementation
  
40                                      http://tech.trailmax.info/2014/02/attempt-to-do-view-compilation-for-azure-web-role/
  
41                                      http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/BuildManagerCompiledView.cs
  
42                                      http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/BuildManagerCompiledView.cs
  
43                                     */
  
44                                     throw new NotImplementedException();
  
45
  
46                                     string viewName = RenderHelper.ViewNameFromActionResult(actionResult);
  
47                                     if (string.IsNullOrEmpty(viewName))
  
48                                     {
  
49                                         viewName = actionName;
  
50                                     }
  
51                                     //定制 路径 不基于mvc标准
  
52                                     string viewPath = System.IO.Path.Combine( "~/Views", controllerName, string.Concat(actionName, ".aspx")).Replace("\\","/");//暂时没有ascx
  
53                                    //
  
54                                     resultText = RenderHelper.RenderWebFormViewToString(ctrlContext, actionResult, viewPath);//RenderHelper.RenderActionResultToString(ctrlContext, actionResult, mvcRouteData, controllerOfMvc);
  
55
  
56                                 }

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-429284-1-1.html 上篇帖子: Jmeter常用脚本开发之FTP请求 下篇帖子: ASP.NET Core 2.0使用Cookie认证实现SSO单点登录
累计签到:184 天
连续签到:6 天
发表于 2017-12-29 11:08:16 | 显示全部楼层
金币不够,回帖来凑

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表