我使用xunit为aspnetcore 3.1应用程序编写了一些集成测试。测试显示成功,但进程仍在运行。过了一段时间我得到:
进程dotnet:1234已完成分配给它的测试,但仍在运行。可能的原因是不正确的异步代码或冗长的测试资源处理。
这种行为甚至用样板代码显示,如下所示:
[Fact]
public async Task TestServer()
{
var hostBuilder = new HostBuilder()
.ConfigureWebHost(webHost =>
{
// Add TestServer
webHost.UseTestServer();
webHost.Configure(app => app.Run(async ctx =>
await ctx.Response.WriteAsync("Hello World!")));
});
// Build and start the IHost
var host = await hostBuilder.StartAsync();
}如果我添加等待host.StopAsync().
我在一台Ubuntu18.04机器上。
发布于 2021-04-29 10:37:05
发布于 2022-09-21 08:30:40
我也有同样的问题。由于我使用的是NUnit,所以建议的更改不是一个选项(它基于xunit)。因此,我正在深入研究它,其根本原因很简单:我在Startup.cs中创建了一个长期运行的任务,它在整个托管过程中都在进行一些监视。所以我不得不停止这个任务,然后TestHost的实例也被正确地处理了。
https://stackoverflow.com/questions/67315438
复制相似问题