无论是使用 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 关注
- 955 浏览
添加回答
举报
0/150
提交
取消