無論是使用 asp.net core 自帶的 console 日志,還是使用 serilog 的 Serilog.Sinks.Console ,都無法在 dotnet test 的控制臺輸出日志,請問如何解決這個問題?
1 回答

叮當貓咪
TA貢獻1776條經驗 獲得超12個贊
安裝 nuget 包 Serilog.Sinks.XUnit
dotnet add package Serilog.Sinks.XUnit
在 CustomWebApplicationFactory 類中實現 ConfigureLogging() 方法
public class CustomWebApplicationFactory<TStartup> : WebApplicationFactory<TStartup> where TStartup : class{ public void ConfigureLogging(ITestOutputHelper outputHelper) { Log.Logger = new LoggerConfiguration() .WriteTo.TestOutput(outputHelper, LogEventLevel.Information) .CreateLogger(); } }
在測試類的構造函數中通過依賴注入獲取 ITestOutputHelper ,然后調用上面的 ConfigureLogging() 方法配置 Serilog 將日志輸出到 ITestOutputHelper
public class WebApiTest : IClassFixture<CustomWebApplicationFactory<Startup>> { private readonly HttpClient _httpClient; public WebApiTest(CustomWebApplicationFactory<Startup> factory, ITestOutputHelper testOutput) { factory.ConfigureLogging(testOutput); _httpClient = factory.CreateClient(); } //...}
- 1 回答
- 0 關注
- 1006 瀏覽
添加回答
舉報
0/150
提交
取消