小编Fea*_*are的帖子

带有通用IHostBuilder的.Net核心集成TestServer

我已经使用.Net Core 3.0预览版2更新了我的网站,并且希望使用TestServer 进行集成测试。在.Net Core 2.2中,我已经能够使用WebApplicationFactory<Startup>

由于WebHostBuilder即将弃用(请参阅(https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-2.2&tabs=visual-studio)了解更多详细信息。 ),我想立即跟进并实施新的泛型HostBuilder。它对于启动网站非常有用,但是在启动集成测试时崩溃。我知道WebApplicationFactory确实有用WebHostBuilder,这就是它崩溃的原因,但是我不知道如何为Generic更改它HostBuilder

这是我在.Net Core 2.2中运行的代码:

namespace CompX.FunctionalTest.Web.Factory
{
    public class CustomWebApplicationFactory<TStartup> : WebApplicationFactory<Startup>
    {
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            builder.ConfigureServices(services =>
            {
                // Create a new service provider.
                var serviceProvider = new ServiceCollection()
                    .AddEntityFrameworkInMemoryDatabase()
                    .BuildServiceProvider();

                // Add a database context (ApplicationDbContext) using an in-memory 
                // database for testing.
                services.AddDbContext<ApplicationDbContext>(options =>
                {
                    options.UseInMemoryDatabase("InMemoryDbForTesting");
                    options.UseInternalServiceProvider(serviceProvider);
                }); …
Run Code Online (Sandbox Code Playgroud)

c# xunit .net-core asp.net-core asp.net-core-3.0

10
推荐指数
1
解决办法
1327
查看次数

标签 统计

.net-core ×1

asp.net-core ×1

asp.net-core-3.0 ×1

c# ×1

xunit ×1