Ductus.FluentDocker.XUnit
2.10.39
See the version list below for details.
dotnet add package Ductus.FluentDocker.XUnit --version 2.10.39
NuGet\Install-Package Ductus.FluentDocker.XUnit -Version 2.10.39
<PackageReference Include="Ductus.FluentDocker.XUnit" Version="2.10.39" />
paket add Ductus.FluentDocker.XUnit --version 2.10.39
#r "nuget: Ductus.FluentDocker.XUnit, 2.10.39"
// Install Ductus.FluentDocker.XUnit as a Cake Addin #addin nuget:?package=Ductus.FluentDocker.XUnit&version=2.10.39 // Install Ductus.FluentDocker.XUnit as a Cake Tool #tool nuget:?package=Ductus.FluentDocker.XUnit&version=2.10.39
FluentDocker for XUnit
In addition to the standard FluentDocker usage, it adds the ability to use easy testing with containers via XUnit.
For example, fire up a Postgres container inside the test could look like this
public class PostgresXUnitTests : IClassFixture<PostgresTestBase>
{
[Fact]
public void Test()
{
// We now have a running Postgres
// and a valid connection string to use.
}
}
This library enables docker
and docker-compose
interactions using a Fluent API. It is supported on Linux, Windows and Mac. It also has support for the legacy docker-machine
interactions.
Have a look at the project site for more information.
Sample Fluent API usage
using (
var container =
new Builder().UseContainer()
.UseImage("kiasaki/alpine-postgres")
.ExposePort(5432)
.WithEnvironment("POSTGRES_PASSWORD=mysecretpassword")
.WaitForPort("5432/tcp", 30000 /*30s*/)
.Build()
.Start())
{
var config = container.GetConfiguration(true);
Assert.AreEqual(ServiceRunningState.Running, config.State.ToServiceState());
}
The following snippet fires up Postgres and waits for it to be ready. It uses docker-compose file to perform the task.
var file = Path.Combine(Directory.GetCurrentDirectory(),
(TemplateString) "Resources/ComposeTests/WordPress/docker-compose.yml");
using (var svc = new Builder()
.UseContainer()
.UseCompose()
.FromFile(file)
.RemoveOrphans()
.WaitForHttp("wordpress", "http://localhost:8000/wp-admin/install.php")
.Build().Start())
{
// We now have a running WordPress with a MySql database
var installPage = await "http://localhost:8000/wp-admin/install.php".Wget();
Assert.IsTrue(installPage.IndexOf("https://wordpress.org/", StringComparison.Ordinal) != -1);
Assert.AreEqual(1, svc.Hosts.Count); // The host used by compose
Assert.AreEqual(2, svc.Containers.Count); // We can access each individual container
Assert.AreEqual(2, svc.Images.Count); // And the images used.
}
👀 It has tons of features, including a low-level command style, services and finally, the Fluent API on top of it.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.6 is compatible. netstandard2.0 was computed. netstandard2.1 was computed. |
.NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.1
- Ductus.FluentDocker (>= 2.10.39)
-
.NETStandard 1.6
- Ductus.FluentDocker (>= 2.10.39)
- NETStandard.Library (>= 1.6.1)
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 |
---|---|---|
2.10.59 | 199,934 | 1/11/2023 |
2.10.57 | 20,787 | 9/24/2022 |
2.10.56 | 3,527 | 8/24/2022 |
2.10.55 | 12,688 | 6/24/2022 |
2.10.54 | 433 | 6/24/2022 |
2.10.53 | 444 | 6/23/2022 |
2.10.51 | 2,093 | 6/7/2022 |
2.10.50 | 526 | 6/7/2022 |
2.10.48 | 1,464 | 5/30/2022 |
2.10.46 | 442 | 5/30/2022 |
2.10.45 | 34,670 | 3/9/2022 |
2.10.44 | 15,233 | 12/8/2021 |
2.10.42 | 3,537 | 11/24/2021 |
2.10.41 | 6,818 | 11/23/2021 |
2.10.40 | 1,192 | 10/27/2021 |
2.10.39 | 1,966 | 10/1/2021 |
2.10.35 | 395 | 10/1/2021 |
2.10.25 | 416 | 10/1/2021 |
1.0.348 | 683 | 10/1/2021 |