小编Pet*_*čas的帖子

.NET 的测试容器不指示容器创建

我有一个简单的 xUnit.net 集成测试,使用版本中的 Testcontainers NuGet 包2.3.0在 Docker 容器中运行 Microsoft SQL Server 实例。

测试看起来像这样:

[Fact]
public async Task TestDatabaseConnection()
{
    var container = new TestcontainersBuilder<MsSqlTestcontainer>()
        .WithDatabase(new MsSqlTestcontainerConfiguration
        {
            Password = "password",
        })
        .Build();
    await container.StartAsync();

    using var connection = new SqlConnection(container.ConnectionString);
    connection.Open();
    connection.State.Should().Be(System.Data.ConnectionState.Open);
}
Run Code Online (Sandbox Code Playgroud)

但是,container.StartAsync()抛出DockerAPIException

Docker.DotNet.DockerApiException : Docker API responded with status code=Conflict, response={"message":"Container 7b487d4475ece5c37e24f553a2f9d9c133a37636025b8731b22dea5022c628ca is not running"}
Run Code Online (Sandbox Code Playgroud)

在 Docker Desktop 中,我看到容器的 ID 与异常中的 ID 完全相同,并且在测试结束时容器被删除。

c# docker testcontainers .net-6.0

2
推荐指数
1
解决办法
949
查看次数

标签 统计

.net-6.0 ×1

c# ×1

docker ×1

testcontainers ×1