我目前正在开发一个非常简单的测试库。该解决方案还包含一个 ASP.NET Core Webhost,它处理简单的 CRUD 操作。我想对这个 ASP.NET Core 应用程序进行单元测试,而不必总是启动两个项目,所以我在我的 NUIt 测试库中创建了一个新的 WebHostBuilder。
[OneTimeSetUp]
public void SetupHost()
{
var webhostBuilder = new WebHostBuilder()
.UseKestrel()
.UseIISIntegration()
.UseContentRoot("root")
.UseStartup(typeof(Startup))
.ConfigureAppConfiguration((builderContext, config) =>
{
config.AddJsonFile("config1", false);
config.AddJsonFile("config2", false);
});
webhostBuilder
.Build()
.Run();
}
问题是SetupHost()永远不会完成,因为Run()在主机关闭之前阻塞线程。
如何启动一个新的虚拟主机,然后在它成功启动后开始我的单元测试?