protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.ConfigureServices(services => { var descriptor = services.SingleOrDefault( d => d.ServiceType == typeof(DbContextOptions <ApplicationDbContext>)); services.Remove(descriptor); services.AddLogging(builder => { builder.AddConsole(); builder.AddFilter(level => level >= LogLevel.Trace); }); services.AddAuthentication("Test") .AddScheme <AuthenticationSchemeOptions, TestAuthHandler>("Test", options => { }); services.AddAuthorization(); services.AddTransient <IAuthService, AuthService>(); services.AddTransient <IUserService, UserService>(); services.AddTransient <IUserDataService, UserDataService>(); services.AddTransient <IJournalService, JournalService>(); services.AddTransient <IEntryService, EntryService>(); var connection = new SqliteConnection("DataSource=:memory:;Foreign Keys=false"); connection.Open(); services.AddDbContext <ApplicationDbContext>(options => { options.UseSqlite(connection); options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); }); services.Configure <IdentityOptions>(options => { options.User.RequireUniqueEmail = true; }); var sp = services.BuildServiceProvider(); using var scope = sp.CreateScope(); var scopedServices = scope.ServiceProvider; var db = scopedServices.GetRequiredService <ApplicationDbContext>(); db.Database.OpenConnection(); db.Database.EnsureCreated(); }); }