using System.Text.Json; using Microsoft.Extensions.Logging; using Serilog; using TestProject1.XUnit.Logging; using Xunit.Abstractions; namespace TestProject1.XUnit; public class TestBase { private readonly LoggerFactory _loggerFactory; protected readonly ITestOutputHelper Output; private readonly JsonSerializerOptions _jsonSerializerOptions = new(JsonSerializerDefaults.Web) { WriteIndented = true }; public TestBase(ITestOutputHelper output) { Output = output; Console.SetOut(new XUnitConsoleWriter(output)); _loggerFactory = new LoggerFactory([new XunitLoggerProvider(Output)]); } protected void Write(object obj) { Output.WriteLine(obj.ToString()); } protected void WriteJson(T obj) { Console.WriteLine(JsonSerializer.Serialize(obj, _jsonSerializerOptions)); } protected ILogger CreateXUnitLogger() { return _loggerFactory.CreateLogger(); } }