我正在寻找一个例子来说明如何在Sqlite数据库中使用TestContainers.NET。我已经根据这里的例子(https://dotnet.testcontainers.org/api/create_docker_container/)尝试了以下操作:
[Fact]
public async Task TestContainerSetup()
{
const ushort HttpPort = 80;
var sqliteContainer = new ContainerBuilder()
.WithName(Guid.NewGuid().ToString("D"))
.WithImage("keinos/sqlite3:latest") // https://hub.docker.com/r/keinos/sqlite3
//.WithCommand("sqlite3 --version")
.WithPortBinding(HttpPort, true)
.Build();
await sqliteContainer.StartAsync()
.ConfigureAwait(false);
using var httpClient = new HttpClient();
httpClient.BaseAddress = new UriBuilder("http", sqliteContainer.Hostname, sqliteContainer.GetMappedPublicPort(HttpPort)).Uri;
var httpResponseMessage = await httpClient.GetAsync(string.Empty)
.ConfigureAwait(false);
Assert.Equal(HttpStatusCode.OK, httpResponseMessage.StatusCode);
}
不幸的是,await sqliteContainer.StartAsync().ConfigureAwait(false);
超时了,我有点不知道如何继续。
1条答案
按热度按时间ve7v8dk21#
我认为这里不需要测试容器,只需在每个测试中使用唯一的SQLite连接字符串,可以在文件模式下使用不同的文件,也可以通过内存中的连接字符串使用相同的文件。