使用 WebApplicationFactory 进行集成测试期间不显示 Serilog 控制台输出

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

当我从集成测试文件中调用

Log.Information("Test")
时,日志条目在测试控制台中显示正常。如果我从使用 WebApplicationFactory 测试的控制器中调用相同的静态函数,则测试控制台中不会显示任何内容。

奇怪的是,当从使用

WebApplicationFactory
创建的控制器调用时,Console.WriteLine("Test")

也不会显示在测试控制台中

有没有办法在测试控制台中显示从使用WebApplicationFactory测试的控制器分派的日志条目?或者只是将控制台输出从创建的 WebHost 重定向到测试输出的方法?

asp.net-core console integration-testing serilog
1个回答
0
投票

我在这里找到了答案:https://stackoverflow.com/a/74574304/1057436

在 ASP 6 中你可以像这样设置

PreserveExecutionContext

public BasicTests(WebApplicationFactory<Program> factory)
{
    _factory = factory;
    _factory.Server.PreserveExecutionContext = true;
}

此示例中的代码:https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-7.0#basic-tests-with-the-default-webapplicationfactory

© www.soinside.com 2019 - 2024. All rights reserved.