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

Pet*_*čas 2 c# docker testcontainers .net-6.0

我有一个简单的 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 完全相同,并且在测试结束时容器被删除。

Pet*_*čas 5

好吧,我的坏事。密码要求是问题所在:

强大的系统管理员 (SA) 密码:至少 8 个字符,包括大写字母、小写字母、10 进制数字和/或非字母数字符号。