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

叮當(dāng)貓咪
TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
安裝 nuget 包 Serilog.Sinks.XUnit
dotnet add package Serilog.Sinks.XUnit
在 CustomWebApplicationFactory 類中實(shí)現(xiàn) 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(); } }
在測(cè)試類的構(gòu)造函數(shù)中通過依賴注入獲取 ITestOutputHelper ,然后調(diào)用上面的 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 關(guān)注
- 1004 瀏覽
添加回答
舉報(bào)
0/150
提交
取消