如何在 .net 中的单元测试期间从 Testcontainers 获取调试输出

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

当创建容器时出现问题时,测试结果和抛出的异常无法说明实际问题是什么。我正在寻找一种获得类似于手动启动 docker 容器时获得的输出的方法。

从一些帖子中我发现我应该配置一个记录器,但我没有得到任何输出。

我配置记录器的方式是

        var loggerFactory = LoggerFactory.Create(builder =>
        {
            builder.SetMinimumLevel(LogLevel.Debug)
                   .AddConsole();
        });
        TestcontainersSettings.Logger = loggerFactory.CreateLogger<HaproxyDataplaneFixture>();

我在创建容器之前执行此操作。它构建得很好,但我没有看到任何额外的输出。不在输出>测试中也不在输出>调试中。我还尝试在命令行窗口中运行

dotnet test
,它也只显示正常的测试输出,没有任何额外的日志记录。

我的测试框架是 xUnit,以防万一。

.net .net-7.0 testcontainers
1个回答
0
投票

使用

AddDebug()
查看输出 > 调试中的日志。

TestcontainersSettings.Logger
现在已经过时了。警告信息推荐是:

请改用构建器 API WithLogger(ILogger)。

这是一个完整的示例:

var loggerFactory = LoggerFactory.Create(builder =>
{
    builder
        .SetMinimumLevel(LogLevel.Debug)
        .AddDebug()
        .AddConsole();
});

var container = new ContainerBuilder()
    .WithImage("alpine:latest")
    .WithLogger(loggerFactory.CreateLogger<HaproxyDataplaneFixture>())
    .Build();
await container.StartAsync();
© www.soinside.com 2019 - 2024. All rights reserved.