使用代码测试ASP.NET MVC2执行流程

简介: 测试代码点击这里下载,通过此代码也剖析了MVC2的扩展点和扩展方式(其实在不调用基类的情况下填满所有重写的方法也就完成了大半个MVC框架)。 MVC执行流程如下(可以直接下载代码运行页面查看此结果): ----------------开始执行TestMvcApplication 类的 ...

测试代码点击这里下载,通过此代码也剖析了MVC2的扩展点和扩展方式(其实在不调用基类的情况下填满所有重写的方法也就完成了大半个MVC框架)。

MVC执行流程如下(可以直接下载代码运行页面查看此结果):

  • ----------------开始执行TestMvcApplication 类的 Application_Start 方法 -- 05:50:03:9219
  • -------------开始执行TestUrlRoutingModule 类的 PostResolveRequestCache 方法 -- 05:50:04:1740
  • ----------------开始执行TestRoute 类的 GetRouteData 方法 -- 05:50:04:1750
  • -------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:1750
  • ---------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:1820
  • -------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:1820
  • ----------------结束执行TestRoute 类的 GetRouteData 方法返回了:RouteData -- 05:50:04:1840
  • ----------------开始执行TestMvcRouteHandler 类的 GetHttpHandler 方法 -- 05:50:04:1850
  • ----------------结束执行TestMvcRouteHandler 类的 GetHttpHandler 方法返回了:TestMvcHandler -- 05:50:04:1850
  • -------------开始执行TestUrlRoutingModule 类的 PostMapRequestHandler 方法 -- 05:50:04:1860
  • --------------开始执行TestMvcHandler 类的 BeginProcessRequest 方法 -- 05:50:04:1870
  • -----------------开始执行TestMvcHandler 类的 AddVersionHeader 方法 -- 05:50:04:1870
  • -----------------开始执行TestControllerFactory 类的 CreateController 方法传入了:Home -- 05:50:04:1890
  • -------------------开始执行TestControllerFactory 类的 GetControllerType 方法传入了:Home -- 05:50:04:1890
  • -------------------结束执行TestControllerFactory 类的 GetControllerType 方法返回了:RuntimeType -- 05:50:04:2220
  • -------------------开始执行TestControllerFactory 类的 GetControllerInstance 方法传入了:HomeController -- 05:50:04:2220
  • -------------------结束执行TestControllerFactory 类的 GetControllerInstance 方法返回了:HomeController -- 05:50:04:2230
  • -------------开始执行TestMvcHandler 类的 EndProcessRequest 方法 -- 05:50:04:2230
  • --------------------开始执行TestController 类的 Execute 方法 -- 05:50:04:2230
  • ----------------------开始执行TestController 类的 Initialize 方法 -- 05:50:04:2230
  • ----------------------开始执行TestController 类的 ExecuteCore 方法 -- 05:50:04:2240
  • --------------------------开始执行TestController 类的 CreateTempDataProvider 方法 -- 05:50:04:2240
  • --------------------------结束执行TestController 类的 CreateTempDataProvider 方法返回了:TestTempDataProvider -- 05:50:04:2240
  • --------------------------开始执行TestTempDataProvider 类的 LoadTempData 方法 -- 05:50:04:2240
  • -------------------------开始执行TestController 类的 CreateActionInvoker 方法 -- 05:50:04:2240
  • -------------------------结束执行TestController 类的 CreateActionInvoker 方法返回了:TestActionInvoker -- 05:50:04:2250
  • ------------------------开始执行TestActionInvoker 类的 InvokeAction 方法 -- 05:50:04:2250
  • --------------------------开始执行TestActionInvoker 类的 GetControllerDescriptor 方法 -- 05:50:04:2250
  • --------------------------结束执行TestActionInvoker 类的 GetControllerDescriptor 方法返回了:ReflectedControllerDescriptor -- 05:50:04:2260
  • --------------------------开始执行TestActionInvoker 类的 FindAction 方法传入了:Index -- 05:50:04:2270
  • --------------------------结束执行TestActionInvoker 类的 FindAction 方法返回了:ReflectedActionDescriptor -- 05:50:04:2270
  • --------------------------开始执行TestActionInvoker 类的 GetFilters 方法 -- 05:50:04:2280
  • --------------------------结束执行TestActionInvoker 类的 GetFilters 方法返回了:FilterInfo -- 05:50:04:2300
  • --------------------------开始执行TestActionInvoker 类的 InvokeAuthorizationFilters 方法 -- 05:50:04:2300
  • -----------------------------开始执行TestController 类的 OnAuthorization 方法 -- 05:50:04:2300
  • ----------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IAuthorizationFilter.OnAuthorization 方法 -- 05:50:04:2300
  • ----------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IAuthorizationFilter.OnAuthorization 方法 -- 05:50:04:2310
  • --------------------------结束执行TestActionInvoker 类的 InvokeAuthorizationFilters 方法返回了:AuthorizationContext -- 05:50:04:2310
  • --------------------------开始执行TestActionInvoker 类的 GetParameterValues 方法 -- 05:50:04:2310
  • ----------------------------开始执行TestActionInvoker 类的 GetParameterValue 方法 -- 05:50:04:2320
  • -------------------------------------结束执行TestValueProviderFactory 类的 GetValueProvider 方法返回了:TestValueProvider -- 05:50:04:2350
  • -----------------------------------结束执行TestValueProvider 类的 ContainsPrefix 方法返回了:False -- 05:50:04:2380
  • ---------------------------------结束执行TestModelBinder 类的 CreateModel 方法返回了:TestModel -- 05:50:04:2380
  • -----------------------------------结束执行TestModelBinder 类的 GetTypeDescriptor 方法返回了:_AssociatedMetadataTypeTypeDescriptor -- 05:50:04:2390
  • --------------------------------------结束执行TestModelBinder 类的 GetTypeDescriptor 方法返回了:_AssociatedMetadataTypeTypeDescriptor -- 05:50:04:2390
  • ------------------------------------结束执行TestModelBinder 类的 GetModelProperties 方法返回了:PropertyDescriptorCollection -- 05:50:04:2390
  • -----------------------------------开始执行TestModelBinder 类的 BindProperty 方法 -- 05:50:04:2400
  • ----------------------------------------结束执行TestValueProvider 类的 ContainsPrefix 方法返回了:True -- 05:50:04:2400
  • -------------------------------------------结束执行TestValueProvider 类的 ContainsPrefix 方法返回了:True -- 05:50:04:2410
  • ---------------------------------------------结束执行TestValueProvider 类的 GetValue 方法返回了:TestValueProviderResult -- 05:50:04:2430
  • -------------------------------------结束执行TestModelBinder 类的 GetPropertyValue 方法返回了:String -- 05:50:04:2430
  • -------------------------------------开始执行TestModelBinder 类的 SetProperty 方法 -- 05:50:04:2440
  • ------------------------------结束执行TestModelBinder 类的 BindModel 方法返回了:TestModel -- 05:50:04:2450
  • ----------------------------结束执行TestActionInvoker 类的 GetParameterValue 方法返回了:TestModel -- 05:50:04:2450
  • --------------------------结束执行TestActionInvoker 类的 GetParameterValues 方法返回了:Dictionary`2 -- 05:50:04:2450
  • --------------------------开始执行TestActionInvoker 类的 InvokeActionMethodWithFilters 方法 -- 05:50:04:2450
  • -------------------------------开始执行TestController 类的 OnActionExecuting 方法 -- 05:50:04:2460
  • --------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuting 方法 -- 05:50:04:2460
  • ----------------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuting 方法 -- 05:50:04:2460
  • -----------------------------------开始执行TestActionInvoker 类的 InvokeActionMethod 方法 -- 05:50:04:2460
  • ------------------------------------------开始执行TestController 类的 View 方法 -- 05:50:04:2500
  • ------------------------------------------结束执行TestController 类的 View 方法返回了:TestViewResult -- 05:50:04:2500
  • -------------------------------------开始执行TestActionInvoker 类的 CreateActionResult 方法 -- 05:50:04:2500
  • -------------------------------------结束执行TestActionInvoker 类的 CreateActionResult 方法返回了:TestViewResult -- 05:50:04:2500
  • -----------------------------------结束执行TestActionInvoker 类的 InvokeActionMethod 方法返回了:TestViewResult -- 05:50:04:2500
  • ----------------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuted 方法 -- 05:50:04:2500
  • --------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuted 方法 -- 05:50:04:2510
  • -------------------------------开始执行TestController 类的 OnActionExecuted 方法 -- 05:50:04:2510
  • --------------------------结束执行TestActionInvoker 类的 InvokeActionMethodWithFilters 方法返回了:ActionExecutedContext -- 05:50:04:2510
  • --------------------------开始执行TestActionInvoker 类的 InvokeActionResultWithFilters 方法传入了:TestViewResult -- 05:50:04:2510
  • -------------------------------开始执行TestController 类的 OnResultExecuting 方法 -- 05:50:04:2520
  • --------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuting 方法 -- 05:50:04:2520
  • ----------------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuting 方法 -- 05:50:04:2520
  • -----------------------------------开始执行TestActionInvoker 类的 InvokeActionResult 方法 -- 05:50:04:2530
  • -------------------------------------开始执行TestViewResult 类的 ExecuteResult 方法 -- 05:50:04:2530
  • ---------------------------------------开始执行TestViewResult 类的 FindView 方法 -- 05:50:04:2530
  • --------------------------------------------开始执行TestViewEngine 类的 FindView 方法传入了:Index,useCache -- 05:50:04:2540
  • --------------------------------------------结束执行TestViewEngine 类的 FindView 方法返回了:ViewEngineResult -- 05:50:04:2540
  • --------------------------------------------开始执行TestViewEngine 类的 FindView 方法传入了:Index -- 05:50:04:2540
  • ------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Home/Index.aspx -- 05:50:04:2550
  • ------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:True -- 05:50:04:2630
  • ----------------------------------------------开始执行TestViewEngine 类的 CreateView 方法传入了:~/Views/Home/Index.aspx -- 05:50:04:2630
  • ----------------------------------------------结束执行TestViewEngine 类的 CreateView 方法返回了:TestView -- 05:50:04:2640
  • --------------------------------------------结束执行TestViewEngine 类的 FindView 方法返回了:ViewEngineResult -- 05:50:04:2640
  • ---------------------------------------结束执行TestViewResult 类的 FindView 方法返回了:ViewEngineResult -- 05:50:04:2640
  • ---------------------------------------开始执行TestView 类的 Render 方法 -- 05:50:04:2640
  • ------------------------------------------------------------------------------开始执行TestRoute 类的 GetVirtualPath 方法 -- 05:50:04:3010
  • ---------------------------------------------------------------------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:3010
  • -----------------------------------------------------------------------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:3010
  • ---------------------------------------------------------------------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:3020
  • ------------------------------------------------------------------------------结束执行TestRoute 类的 GetVirtualPath 方法返回了:VirtualPathData -- 05:50:04:3020
  • ---------------------------------------------------------------------------------------开始执行TestControllerFactory 类的 CreateController 方法传入了:Home -- 05:50:04:3020
  • -----------------------------------------------------------------------------------------开始执行TestControllerFactory 类的 GetControllerType 方法传入了:Home -- 05:50:04:3030
  • -----------------------------------------------------------------------------------------结束执行TestControllerFactory 类的 GetControllerType 方法返回了:RuntimeType -- 05:50:04:3030
  • -----------------------------------------------------------------------------------------开始执行TestControllerFactory 类的 GetControllerInstance 方法传入了:HomeController -- 05:50:04:3030
  • -----------------------------------------------------------------------------------------结束执行TestControllerFactory 类的 GetControllerInstance 方法返回了:HomeController -- 05:50:04:3030
  • --------------------------------------------------------------------------------------------开始执行TestController 类的 Execute 方法 -- 05:50:04:3040
  • ----------------------------------------------------------------------------------------------开始执行TestController 类的 Initialize 方法 -- 05:50:04:3040
  • ----------------------------------------------------------------------------------------------开始执行TestController 类的 ExecuteCore 方法 -- 05:50:04:3050
  • -------------------------------------------------------------------------------------------------开始执行TestController 类的 CreateActionInvoker 方法 -- 05:50:04:3050
  • -------------------------------------------------------------------------------------------------结束执行TestController 类的 CreateActionInvoker 方法返回了:TestActionInvoker -- 05:50:04:3050
  • ------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeAction 方法 -- 05:50:04:3050
  • --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 GetControllerDescriptor 方法 -- 05:50:04:3060
  • --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 GetControllerDescriptor 方法返回了:ReflectedControllerDescriptor -- 05:50:04:3060
  • --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 FindAction 方法传入了:LogOnUserControl -- 05:50:04:3060
  • --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 FindAction 方法返回了:ReflectedActionDescriptor -- 05:50:04:3060
  • --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 GetFilters 方法 -- 05:50:04:3070
  • --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 GetFilters 方法返回了:FilterInfo -- 05:50:04:3070
  • --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeAuthorizationFilters 方法 -- 05:50:04:3070
  • -----------------------------------------------------------------------------------------------------开始执行TestController 类的 OnAuthorization 方法 -- 05:50:04:3070
  • ----------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IAuthorizationFilter.OnAuthorization 方法 -- 05:50:04:3080
  • --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeAuthorizationFilters 方法返回了:AuthorizationContext -- 05:50:04:3080
  • --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 GetParameterValues 方法 -- 05:50:04:3080
  • --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 GetParameterValues 方法返回了:Dictionary`2 -- 05:50:04:3080
  • --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeActionMethodWithFilters 方法 -- 05:50:04:3090
  • -------------------------------------------------------------------------------------------------------开始执行TestController 类的 OnActionExecuting 方法 -- 05:50:04:3090
  • --------------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuting 方法 -- 05:50:04:3090
  • ---------------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeActionMethod 方法 -- 05:50:04:3100
  • ----------------------------------------------------------------------------------------------------------------开始执行TestController 类的 PartialView 方法 -- 05:50:04:3100
  • ----------------------------------------------------------------------------------------------------------------结束执行TestController 类的 PartialView 方法返回了:TestPartialViewResult -- 05:50:04:3110
  • -----------------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 CreateActionResult 方法 -- 05:50:04:3110
  • -----------------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 CreateActionResult 方法返回了:TestPartialViewResult -- 05:50:04:3110
  • ---------------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeActionMethod 方法返回了:TestPartialViewResult -- 05:50:04:3120
  • --------------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuted 方法 -- 05:50:04:3120
  • -------------------------------------------------------------------------------------------------------开始执行TestController 类的 OnActionExecuted 方法 -- 05:50:04:3120
  • --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeActionMethodWithFilters 方法返回了:ActionExecutedContext -- 05:50:04:3120
  • --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeActionResultWithFilters 方法传入了:TestPartialViewResult -- 05:50:04:3130
  • -------------------------------------------------------------------------------------------------------开始执行TestController 类的 OnResultExecuting 方法 -- 05:50:04:3130
  • --------------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuting 方法 -- 05:50:04:3130
  • ---------------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeActionResult 方法 -- 05:50:04:3130
  • -----------------------------------------------------------------------------------------------------------开始执行TestPartialViewResult 类的 ExecuteResult 方法 -- 05:50:04:3140
  • -------------------------------------------------------------------------------------------------------------开始执行TestPartialViewResult 类的 FindView 方法 -- 05:50:04:3140
  • ------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FindPartialView 方法传入了:LogOnUserControl,useCache -- 05:50:04:3150
  • ------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FindPartialView 方法返回了:ViewEngineResult -- 05:50:04:3150
  • ------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FindPartialView 方法传入了:LogOnUserControl -- 05:50:04:3150
  • ----------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Home/LogOnUserControl.aspx -- 05:50:04:3160
  • ----------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:False -- 05:50:04:3170
  • ----------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Home/LogOnUserControl.ascx -- 05:50:04:3170
  • ----------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:False -- 05:50:04:3170
  • ----------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Shared/LogOnUserControl.aspx -- 05:50:04:3180
  • ----------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:False -- 05:50:04:3180
  • ----------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Shared/LogOnUserControl.ascx -- 05:50:04:3190
  • ----------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:True -- 05:50:04:3210
  • --------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 CreatePartialView 方法传入了:~/Views/Shared/LogOnUserControl.ascx -- 05:50:04:3220
  • --------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 CreatePartialView 方法返回了:TestView -- 05:50:04:3220
  • ------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FindPartialView 方法返回了:ViewEngineResult -- 05:50:04:3220
  • -------------------------------------------------------------------------------------------------------------结束执行TestPartialViewResult 类的 FindView 方法返回了:ViewEngineResult -- 05:50:04:3230
  • -------------------------------------------------------------------------------------------------------------开始执行TestView 类的 Render 方法 -- 05:50:04:3230
  • ----------------------------------------------------------------------------------------------------------------------------------------------------------开始执行TestRoute 类的 GetVirtualPath 方法 -- 05:50:04:3480
  • -------------------------------------------------------------------------------------------------------------------------------------------------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:3560
  • ---------------------------------------------------------------------------------------------------------------------------------------------------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:3560
  • -------------------------------------------------------------------------------------------------------------------------------------------------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:3560
  • ----------------------------------------------------------------------------------------------------------------------------------------------------------结束执行TestRoute 类的 GetVirtualPath 方法返回了:VirtualPathData -- 05:50:04:3570
  • -------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 ReleaseView 方法传入了:TestView -- 05:50:04:3600
  • --------------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuted 方法 -- 05:50:04:3600
  • -------------------------------------------------------------------------------------------------------开始执行TestController 类的 OnResultExecuted 方法 -- 05:50:04:3610
  • --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeActionResultWithFilters 方法返回了:ResultExecutedContext -- 05:50:04:3610
  • ------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeAction 方法返回了:True -- 05:50:04:3610
  • -------------------------------------------------------------------------------------------开始执行TestControllerFactory 类的 ReleaseController 方法 -- 05:50:04:3620
  • ----------------------------------------------------------------------------------------------开始执行TestController 类的 Dispose 方法 -- 05:50:04:3620
  • ----------------------------------------------------------------------------------开始执行TestRoute 类的 GetVirtualPath 方法 -- 05:50:04:3620
  • -------------------------------------------------------------------------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:3620
  • ---------------------------------------------------------------------------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:3630
  • -------------------------------------------------------------------------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:3630
  • ----------------------------------------------------------------------------------结束执行TestRoute 类的 GetVirtualPath 方法返回了:VirtualPathData -- 05:50:04:3630
  • ----------------------------------------------------------------------------------开始执行TestRoute 类的 GetVirtualPath 方法 -- 05:50:04:3630
  • -------------------------------------------------------------------------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:3640
  • ---------------------------------------------------------------------------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:3640
  • -------------------------------------------------------------------------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:3640
  • ----------------------------------------------------------------------------------结束执行TestRoute 类的 GetVirtualPath 方法返回了:VirtualPathData -- 05:50:04:3640
  • ---------------------------------------开始执行TestViewEngine 类的 ReleaseView 方法传入了:TestView -- 05:50:04:3650
  • ----------------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuted 方法 -- 05:50:04:3650
  • --------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuted 方法 -- 05:50:04:3650
  • -------------------------------开始执行TestController 类的 OnResultExecuted 方法 -- 05:50:04:3650
  • --------------------------结束执行TestActionInvoker 类的 InvokeActionResultWithFilters 方法返回了:ResultExecutedContext -- 05:50:04:3650
  • ------------------------结束执行TestActionInvoker 类的 InvokeAction 方法返回了:True -- 05:50:04:3650
  • --------------------------开始执行TestTempDataProvider 类的 SaveTempData 方法 -- 05:50:04:3670
  • -------------------开始执行TestControllerFactory 类的 ReleaseController 方法 -- 05:50:04:3670
  • ----------------------开始执行TestController 类的 Dispose 方法 -- 05:50:04:3670
作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章
|
8月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
存储 人工智能 测试技术
HarmonyOS Next~HarmonyOS应用测试全流程解析:从一级类目上架到二级类目专项测试
本文深入解析HarmonyOS应用测试全流程,涵盖从一级类目通用测试到二级类目专项测试的技术方案。针对兼容性、性能、安全测试及分布式能力验证等关键环节,提供详细实践指导与代码示例。同时,结合典型案例分析常见问题及优化策略,帮助开发者满足华为严苛的质量标准,顺利上架应用。文章强调测试在开发中的核心地位,助力打造高品质HarmonyOS应用。
682 2
|
11月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
375 0
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
1327 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
28288 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
人工智能 安全 测试技术
Burp Suite Professional 2025.3 发布,引入 Burp AI 通过人工智能增强安全测试工作流程
Burp Suite Professional 2025.3 发布,引入 Burp AI 通过人工智能增强安全测试工作流程
991 0
Burp Suite Professional 2025.3 发布,引入 Burp AI 通过人工智能增强安全测试工作流程
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
656 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
7232 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
576 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)