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