using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Util.Aop; using Util.Helpers; using Util.Sessions; using Util.Tests.Infrastructure; using Util.Tests.UnitOfWorks; using Xunit.DependencyInjection; using Xunit.DependencyInjection.Logging; namespace Util.Data.EntityFrameworkCore { /// /// 启动配置 /// public class Startup { /// /// 配置主机 /// public void ConfigureHost( IHostBuilder hostBuilder ) { hostBuilder.ConfigureDefaults( null ) .AddUtil( options => { Environment.SetDevelopment(); options.UseAop() .UseOracleUnitOfWork( Config.GetConnectionString( "connection" ) ); } ); } /// /// 配置服务 /// public void ConfigureServices( IServiceCollection services ) { services.AddSingleton(); InitDatabase( services ); } /// /// 初始化数据库 /// private void InitDatabase( IServiceCollection services ) { var unitOfWork = services.BuildServiceProvider().GetService(); unitOfWork.EnsureDeleted(); unitOfWork.EnsureCreated(); } /// /// 配置日志提供程序 /// public void Configure( ILoggerFactory loggerFactory, ITestOutputHelperAccessor accessor ) { loggerFactory.AddProvider( new XunitTestOutputLoggerProvider( accessor, ( s, logLevel ) => logLevel >= LogLevel.Trace ) ); } } }