Ductus.FluentDocker.MsTest
2.85.0
dotnet add package Ductus.FluentDocker.MsTest --version 2.85.0
NuGet\Install-Package Ductus.FluentDocker.MsTest -Version 2.85.0
<PackageReference Include="Ductus.FluentDocker.MsTest" Version="2.85.0" />
<PackageVersion Include="Ductus.FluentDocker.MsTest" Version="2.85.0" />
<PackageReference Include="Ductus.FluentDocker.MsTest" />
paket add Ductus.FluentDocker.MsTest --version 2.85.0
#r "nuget: Ductus.FluentDocker.MsTest, 2.85.0"
#:package Ductus.FluentDocker.MsTest@2.85.0
#addin nuget:?package=Ductus.FluentDocker.MsTest&version=2.85.0
#tool nuget:?package=Ductus.FluentDocker.MsTest&version=2.85.0
FluentDocker for MsTest
In addition to the standard FluentDocker usage, it adds the ability to use easy testing with containers via MsTest.
For example, fire up a Postgres container inside the test could look like this
[TestClass]
public class PostgresMsTests : PostgresTestBase
{
[TestMethod]
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");
// @formatter:off
using (var svc = new Builder()
.UseContainer()
.UseCompose()
.FromFile(file)
.RemoveOrphans()
.WaitForHttp("wordpress", "http://localhost:8000/wp-admin/install.php")
.Build().Start())
// @formatter:on
{
// 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 is compatible. 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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. 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 | 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. |
-
.NETStandard 2.0
- Ductus.FluentDocker (>= 2.85.0)
- MSTest.TestFramework (>= 2.2.7)
- System.Runtime.InteropServices.RuntimeInformation (>= 4.3.0)
-
net6.0
- Ductus.FluentDocker (>= 2.85.0)
- MSTest.TestFramework (>= 2.2.7)
-
net8.0
- Ductus.FluentDocker (>= 2.85.0)
- MSTest.TestFramework (>= 2.2.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Ductus.FluentDocker.MsTest:
| Repository | Stars |
|---|---|
|
IoTSharp/TaosConnector
ADO.NET, ORM,Stmt,TDengine
|
| Version | Downloads | Last Updated |
|---|---|---|
| 2.85.0 | 28,804 | 7/25/2025 |
| 2.84.0 | 579 | 7/25/2025 |
| 2.83.0 | 323 | 6/27/2025 |
| 2.82.0 | 241 | 6/27/2025 |
| 2.81.0 | 237 | 6/27/2025 |
| 2.80.0 | 242 | 6/27/2025 |
| 2.79.0 | 258 | 6/27/2025 |
| 2.10.59 | 92,016 | 1/11/2023 |
| 2.10.57 | 964 | 9/24/2022 |
| 2.10.56 | 3,656 | 8/24/2022 |
| 2.10.55 | 12,526 | 6/24/2022 |
| 2.10.54 | 694 | 6/24/2022 |
| 2.10.53 | 723 | 6/23/2022 |
| 2.10.51 | 1,398 | 6/7/2022 |
| 2.10.50 | 678 | 6/7/2022 |
| 2.10.48 | 2,355 | 5/30/2022 |
| 2.10.46 | 676 | 5/30/2022 |
| 2.10.45 | 14,614 | 3/9/2022 |
| 2.10.44 | 858 | 12/8/2021 |
| 2.10.42 | 3,805 | 11/24/2021 |