public static void Main(string[] args)
        {
            var appHost = Host.CreateDefaultBuilder(args)
                          .ConfigureHostConfiguration(configHost => { configHost.AddEnvironmentVariables("ASPNETCORE_"); })
                          .ConfigureConsulConfig(null, true)
                          .UseMockSiteLogging("Logging")
                          .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup <Startup>()
                .ConfigureKestrel((context, kestrelOptions) =>
                {
                    var port = context.Configuration.GetValue <int>(PortConst.TestKey);
                    kestrelOptions.ListenAnyIP(port,
                                               listenOptions => { listenOptions.Protocols = HttpProtocols.Http2; });
                });
            }).Build();

            var logger = appHost.Services.GetRequiredService <ILogger <Program> >();

            MethodTimeLogger.SetLogger(appHost.Services.GetRequiredService <ILoggerProvider>());

            try
            {
                appHost.Run();
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message, ex);
            }
        }
        public void SetUp()
        {
            _logger = Substitute.For <ILogger <UserRepository> >();

            var consulProvider =
                ConsulConfigProvider.LoadConsulConfig("http://127.0.0.1:18500/v1/kv/",
                                                      new[] { "MockSite" });

            _config = new ConfigurationBuilder()
                      .AddJsonFile(consulProvider, "test.json", true, false)
                      .Build();

            _helper = new SqlConnectionHelper(Substitute.For <ILoggerProvider>());
            MethodTimeLogger.SetLogger(Substitute.For <ILoggerProvider>());
        }