SolTechnology.Core.Blob.Testing
1.0.0
dotnet add package SolTechnology.Core.Blob.Testing --version 1.0.0
NuGet\Install-Package SolTechnology.Core.Blob.Testing -Version 1.0.0
<PackageReference Include="SolTechnology.Core.Blob.Testing" Version="1.0.0" />
<PackageVersion Include="SolTechnology.Core.Blob.Testing" Version="1.0.0" />
<PackageReference Include="SolTechnology.Core.Blob.Testing" />
paket add SolTechnology.Core.Blob.Testing --version 1.0.0
#r "nuget: SolTechnology.Core.Blob.Testing, 1.0.0"
#:package SolTechnology.Core.Blob.Testing@1.0.0
#addin nuget:?package=SolTechnology.Core.Blob.Testing&version=1.0.0
#tool nuget:?package=SolTechnology.Core.Blob.Testing&version=1.0.0
SolTechnology.Core.Blob.Testing
Integration-testing fixture for apps backed by Azure Blob Storage (e.g. SolTechnology.Core.Blob
consumers): a Testcontainers-backed AzuriteFixture that boots an
Azurite container (the Azure Storage emulator) and hands back the
connection string your app already wires.
Azure-specific by design — there is no LocalStack / S3 path. Reference from test projects only — not needed at runtime in production assemblies.
What's in the box
| Member | Purpose |
|---|---|
AzuriteFixture |
Boots an azurite container, exposes ConnectionString, CreateBlobContainerAsync / ClearAsync, honours the shared reuse policy. |
ConnectionString |
Azure Storage connection string for the running Azurite instance. |
CreateBlobContainerAsync(name) |
Returns a BlobContainerClient, creating the blob container if needed. |
ClearAsync() |
Deletes every blob container — the between-test reset when the container is reused. |
WithNetwork(network, alias) |
Attach to a docker network to share with other fixtures. |
Usage
// Assembly-level [OneTimeSetUp]
AzuriteFixture = new AzuriteFixture();
await AzuriteFixture.InitializeAsync();
var configuration = new TestConfigurationBuilder()
.AddJsonFile("appsettings.tests.json")
.Override("Blob:ConnectionString", AzuriteFixture.ConnectionString)
.Build();
// Arrange a blob container in a test:
var container = await AzuriteFixture.CreateBlobContainerAsync("dossier");
await container.UploadBlobAsync("key", BinaryData.FromString("payload"));
// In a per-test teardown, when the container is reused:
await AzuriteFixture.ClearAsync();
// Assembly-level [OneTimeTearDown]
await AzuriteFixture.DisposeAsync(); // no-op when TESTCONTAINERS_REUSE=true
Container lifetime & reuse
The fixture defers to SolTechnology.Core.Testing's TestContainersContext:
- Within a run — boot once in
[OneTimeSetUp]; every test reuses the same container for free. - Across runs — set
TESTCONTAINERS_REUSE=trueto keep the container alive between runs (stable name +WithReuse(true), andContainerLifecycleHelper.EnsureRunningAsyncrestarts it if it was stopped externally);DisposeAsync()becomes a no-op. CI stays hermetic by default. - Between tests — call
ClearAsync()to drop all blob containers without restarting Azurite.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Azure.Storage.Blobs (>= 12.29.0)
- Microsoft.Extensions.Configuration (>= 10.0.9)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
- Microsoft.Extensions.Options (>= 10.0.9)
- SolTechnology.Core.Testing (>= 1.0.0)
- Testcontainers.Azurite (>= 4.12.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 52 | 7/6/2026 |