当创建容器时出现问题时,测试结果和抛出的异常无法说明实际问题是什么。我正在寻找一种获得类似于手动启动 docker 容器时获得的输出的方法。
从一些帖子中我发现我应该配置一个记录器,但我没有得到任何输出。
我配置记录器的方式是
var loggerFactory = LoggerFactory.Create(builder =>
{
builder.SetMinimumLevel(LogLevel.Debug)
.AddConsole();
});
TestcontainersSettings.Logger = loggerFactory.CreateLogger<HaproxyDataplaneFixture>();
我在创建容器之前执行此操作。它构建得很好,但我没有看到任何额外的输出。不在输出>测试中也不在输出>调试中。我还尝试在命令行窗口中运行
dotnet test
,它也只显示正常的测试输出,没有任何额外的日志记录。
我的测试框架是 xUnit,以防万一。
使用
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();