为了账号安全,请及时绑定邮箱和手机立即绑定

.NET Core: xUnit.net集成测试中如何输出控制台日志

.NET Core: xUnit.net集成测试中如何输出控制台日志

一只名叫tom的猫 2018-08-15 10:09:15
无论是使用 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();
    }        
    //...}


查看完整回答
反对 回复 2018-09-07
  • 1 回答
  • 0 关注
  • 955 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信