我有一个现有的ASP.NET应用程序,只有很少的 ashx 和 asmx 服务。我如何从控制台(或特别是测试)托管它们以进行集成测试?
开发人员使用IIS Express在本地运行和调试它们,因此不能选择启动IIS Express。
如果可能的话,我可以跳过整个管道并直接调用它们。
答案 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主要是固定的,因为它很容易启动新服务器“#”。从任何控制台或服务应用程序侦听端口