首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >整合测试IHost TestServer不会关机

整合测试IHost TestServer不会关机
EN

Stack Overflow用户
提问于 2021-04-29 10:19:20
回答 2查看 884关注 0票数 2

我使用xunit为aspnetcore 3.1应用程序编写了一些集成测试。测试显示成功,但进程仍在运行。过了一段时间我得到:

进程dotnet:1234已完成分配给它的测试,但仍在运行。可能的原因是不正确的异步代码或冗长的测试资源处理。

这种行为甚至用样板代码显示,如下所示:

代码语言:javascript
复制
        [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机器上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-29 10:37:05

  1. 尝试在测试结束时释放主机。最有可能的情况是,错误的原因仅仅是因为您没有释放可使用的资源。
  2. 我建议您使用WebApplicationFactory进行测试,而不是使用HostBuilder。您可以在文档中找到更多
票数 2
EN

Stack Overflow用户

发布于 2022-09-21 08:30:40

我也有同样的问题。由于我使用的是NUnit,所以建议的更改不是一个选项(它基于xunit)。因此,我正在深入研究它,其根本原因很简单:我在Startup.cs中创建了一个长期运行的任务,它在整个托管过程中都在进行一些监视。所以我不得不停止这个任务,然后TestHost的实例也被正确地处理了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67315438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档