kei*_*en7 5 visual-studio asp.net-web-api
我有一个WebAPI项目和VS Test项目的解决方案。
我的测试是通过Url使用RestSharp对API进行调用,而不是实例化控制器本身并注入事物(上下文等)。
我的问题是,是否有一种方法可以告诉测试项目在测试运行开始时通过IIS Express启动Web项目?目前,我只运行了VS的两个实例,一个实例已启动调试的Web投影,另一个正在运行测试包。
如果您尝试同时调试测试和服务,请考虑这样做
Debug-> Detach All。IIS Express 将继续运行。Debug-> Attach to Process。查找iisexpress.exe并附加。但是,您在分离的 Web 服务上丢失了“编辑并继续”。
我不建议使用网络来对 Web API 进行单元测试。你让自己接受测试中潜在的不稳定因素,最终你测试的东西比服务本身要多得多。
但如果您确实必须这样做,也许是为了测试您的客户端是否可以与 API 交换信息,那么我建议您考虑自托管该服务:
http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api
自托管让您只需几行代码即可启动 Web API 服务器,并且您可以让测试在正确的位置启动该服务器。在大多数情况下,这应该与将服务托管在 IIS Express 中相同。但也有一些重要的区别。例如,您将无法使用您可能习惯的某些 System.Web 概念(例如 HttpContext.Current)。
更新:
我写了一篇关于测试 Web API 服务的博客文章,可能会有所帮助 - https://learn.microsoft.com/en-us/archive/blogs/youssefm/writing-tests-for-an-asp-net-web- api服务
希望有帮助。
| 归档时间: |
|
| 查看次数: |
4768 次 |
| 最近记录: |