using System; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore; using isn; using Xunit; using isn.Data; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace isnd.host.tests { public class UnitTestWebHost { const string testingUrl = "http://localhost:5000"; [Fact] public void TestHaveTestDbContextAndMigrate() { string envVar = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); Assert.Equal("Development", envVar); IWebHost webhost = BuildWebHost(new string[] { "--urls", testingUrl }); using (var serviceScope = webhost.Services.CreateScope()) { var services = serviceScope.ServiceProvider; try { var myDependency = services.GetRequiredService(); myDependency.Database.Migrate(); } catch (Exception ex) { var logger = services.GetRequiredService>(); logger.LogError(ex, "An error occurred."); } } } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup() .Build(); } }