从控制台托管ASP.NET(ashx)应用程序以进行测试

时间:2016-02-15 10:39:04

标签: c# asp.net iis

我有一个现有的ASP.NET应用程序,只有很少的 ashx asmx 服务。我如何从控制台(或特别是测试)托管它们以进行集成测试?

开发人员使用IIS Express在本地运行和调试它们,因此不能选择启动IIS Express。

如果可能的话,我可以跳过整个管道并直接调用它们。

1 个答案:

答案 0 :(得分:0)

您不必测试Web服务器,您可以假设它已经过Microsoft测试并且工作正常,但您可以通过从单元测试中调用它来仅测试您的处理程序。看看here(示例#2)如何为您的ProcessRequest处理程序方法提供假的HttpContext。另外,请尝试this fake HttpContext

HttpContext.Current = new HttpContext(
    new HttpRequest(null, "http://tempuri.org", null),
    new HttpResponse(null));

对于完整的端到端验收测试,您必须使用命令行启动IIS Express甚至Casini服务器:

START /D “C:\Program Files\Common Files\microsoft shared\DevServer\9.0\” /B WebDev.WebServer.EXE /port:5002 /path:”d:\Projects\myproject\” /vpath:”/Project”

从来没有一个关于模拟和测试Web窗体页面,处理程序和模块组件的好故事,但是OWIN主要是固定的,因为它很容易启动新服务器“#”。从任何控制台或服务应用程序侦听端口