运行 针对 ASP.NET REST Web API 服务器进行单元测试的最佳方法是什么

What's the best way to run unit tests against an ASP.NET REST Web API server

我们有一个 ASP.NET Web API 服务器应用程序,它提供 REST API。

我想要的很简单。当我们的单元测试 运行,我更喜欢 NUnit 但可以做 Microsoft 测试框架时,它会启动服务器应用程序。然后我编写了单元测试来进行 REST 调用并断言返回的响应。

其中留下的问题:

  1. 有没有办法在测试开始时首先启动我们的服务器 Web 应用程序并 运行在 IIS Express 上运行。在 运行 可用之前不要开始测试。
  2. 有没有办法在 IIS Express 上对 Web 应用程序的端口进行硬编码或获取单元测试的端口?
  3. 如何让 IIS Express 结束我的 Web 应用程序然后退出?
  4. 为此,我是否需要在一个套件中进行所有测试,这样我就不会启动和停止我们网络应用程序的多个实例?

您描述了 asp.net 核心中的集成测试,并且有很好的文档以 this

开头

您基本上需要使用 Generic host 在 IntegrationTests 解决方案中设置主机,然后涵盖所有要点 1-4