在 Rider 中运行单元测试时如何查看应用程序日志?

问题描述 投票:0回答:1

我正在使用 Serilog、NUnit 和 Rider。我正在从 Rider Unit Tests 窗口运行单元测试,测试失败后我会看到结果和堆栈跟踪。但我想查看我的应用程序的 serilog 日志,以获取有关正在发生的情况的更多信息,如何打开它?

我尝试添加 Serilog.Sinks.NUnit 但没有成功

unit-testing logging nunit serilog rider
1个回答
0
投票

取自

TestContext.Progress
的 NUnit 文档(参见此处):

获取一个 TextWriter,用于发送用于立即显示的正常(非错误)输出。

因此您的日志必须转发到

TestContext.Progress
。根据日志的创建方式,方法可能会有所不同。

假设您将

Microsoft.Extensions.Logging.ILogger
与 Serilog 结合使用,您可以创建一个像这样的自定义记录器并在测试中使用它:

public class ImmediateLogger : Microsoft.Extensions.Logging.ILogger
{
    public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception?, string> formatter)
    {
        TestContext.Progress.WriteLine($"{logLevel.ToString()}: {formatter(state, exception)}");
    }

    // remaining things left out for brevity
}
© www.soinside.com 2019 - 2024. All rights reserved.