You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
3.2 KiB
C#

//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
//using Microsoft.AspNetCore.Builder;
//using Microsoft.AspNetCore.Hosting;
//using Microsoft.AspNetCore.TestHost;
//using Microsoft.Extensions.Configuration;
//using Microsoft.Extensions.DependencyInjection;
//using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.TestHost;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Xunit;
using Xunit.DependencyInjection.AspNetCoreTesting;
using Xunit.DependencyInjection.Logging;
namespace HttpClientStudy.UnitTest
{
/// <summary>
/// 依赖注入 框架必备设置类
/// </summary>
public class Startup
{
/// <summary>
/// 创建主机:可选,一般不用
/// </summary>
/// <returns></returns>
public IHostBuilder CreateHostBuilder()
{
return Host.CreateDefaultBuilder() ;
}
/// <summary>
/// 配置主机:可选
/// </summary>
/// <param name="hostBuilder"></param>
public void ConfigureHost(IHostBuilder hostBuilder)
{
hostBuilder
.ConfigureWebHost
(webHostBuilder => webHostBuilder
.UseTestServerAndAddDefaultHttpClient()
.UseStartup<WebApiStartup>()
);
//hostBuilder
// .ConfigureHostConfiguration(builder => { })
// .ConfigureAppConfiguration((context, builder) => { });
hostBuilder.ConfigureWebHost(webHostBuilder =>
{
webHostBuilder
.UseTestServer(options => options.PreserveExecutionContext = true)
.ConfigureTestServices(a => { })
.UseStartup<WebApiStartup>();
//配置默认配置项
//webHostBuilder.ConfigureAppConfiguration((context, configBuilder) =>
//{
// configBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
// configBuilder.AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: true);
//});
//webHostBuilder.ConfigureServices(services =>
//{
// services.AddHealthChecks();
//});
});
}
/// <summary>
/// 注册服务:必须
/// </summary>
/// <param name="services"></param>
public void ConfigureServices(IServiceCollection services,HostBuilderContext context)
{
//services.AddTransient<IDependency, DependencyClass>();
}
private class WebApiStartup
{
public void ConfigureServices(IServiceCollection services) => services.AddLogging(lb => lb.AddXunitOutput());
public void Configure(IApplicationBuilder app)
{
app.Run(static context => context.Response.WriteAsync("xxxxxx"));
}
}
}
}