diff --git a/README.md b/README.md index 848710c..ff17fb8 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,9 @@ public T GetScopedService(ITestOutputHelper testOutputHelper); public T GetService(ITestOutputHelper testOutputHelper); ``` +### Adding custom logging provider +Test developers can add their own desired logger provider by overriding ```AddLoggingProvider(...)``` virtual method defined in ```TestBedFixture``` class. + ### Preparing Xunit test classes Your Xunit test class must be derived from ```Xunit.Microsoft.DependencyInjection.Abstracts.TestBed``` class where ```T``` should be your fixture class derived from ```TestBedFixture```. diff --git a/src/Abstracts/TestBedFixture.cs b/src/Abstracts/TestBedFixture.cs index 525ed7e..197dba1 100644 --- a/src/Abstracts/TestBedFixture.cs +++ b/src/Abstracts/TestBedFixture.cs @@ -27,7 +27,7 @@ public IServiceProvider GetServiceProvider(ITestOutputHelper testOutputHelper) return _serviceProvider; } - _services.AddLogging(loggingBuilder => loggingBuilder.AddProvider(new OutputLoggerProvider(testOutputHelper))); + _services.AddLogging(loggingBuilder => AddLoggingProvider(loggingBuilder, new OutputLoggerProvider(testOutputHelper))); return _serviceProvider = _services.BuildServiceProvider(); } @@ -41,12 +41,12 @@ public T GetScopedService(ITestOutputHelper testOutputHelper) public T GetService(ITestOutputHelper testOutputHelper) => GetServiceProvider(testOutputHelper).GetService(); - public void AddOutputHelperToLoggerProvider(ITestOutputHelper testOutputHelper) - => _services.AddScoped(_ => new OutputLoggerProvider(testOutputHelper)); - protected abstract string GetConfigurationFile(); protected abstract void AddServices(IServiceCollection services, IConfiguration configuration); + protected virtual ILoggingBuilder AddLoggingProvider(ILoggingBuilder loggingBuilder, ILoggerProvider loggerProvider) + => loggingBuilder.AddProvider(loggerProvider); + private IConfigurationRoot GetConfigurationRoot() { var configurationFile = GetConfigurationFile();