Redis
Redis
Redis is an in-memory key–value database, used as a distributed cache and message broker, with optional durability.
Add the following dependency to your project file:
NuGet
1dotnet add package Testcontainers.RedisYou can start a Redis container instance from any .NET application. This example uses xUnit.net's IAsyncLifetime interface to manage the lifecycle of the container. The container is started in the InitializeAsync method before the test method runs, ensuring that the environment is ready for testing. After the test completes, the container is removed in the DisposeAsync method.
Usage Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21private readonly RedisContainer _redisContainer = new RedisBuilder(TestSession.GetImageFromDockerfile()).Build();
public async ValueTask InitializeAsync()
{
await _redisContainer.StartAsync()
.ConfigureAwait(false);
}
public ValueTask DisposeAsync()
{
return _redisContainer.DisposeAsync();
}
[Fact]
[Trait(nameof(DockerCli.DockerPlatform), nameof(DockerCli.DockerPlatform.Linux))]
public void ConnectionStateReturnsOpen()
{
using var connection = ConnectionMultiplexer.Connect(_redisContainer.GetConnectionString());
Assert.True(connection.IsConnected);
Assert.Equal(_redisContainer.GetConnectionString(), _redisContainer.GetConnectionString(ConnectionMode.Host));
}The test example uses the following NuGet dependencies:
Package References
1
2
3
4
5<PackageReference Include="Microsoft.NET.Test.Sdk"/>
<PackageReference Include="coverlet.collector"/>
<PackageReference Include="xunit.runner.visualstudio"/>
<PackageReference Include="xunit.v3"/>
<PackageReference Include="StackExchange.Redis"/>To execute the tests, use the command dotnet test from a terminal.
Tip
For the complete source code of this example and additional information, please refer to our test projects.
评论
登录后参与评论
KnowForge