Skip to content

Releases: testcontainers/testcontainers-dotnet

3.9.0

17 Jun 04:56
b1ad245
Compare
Choose a tag to compare

Thank you to everyone whose contributions made this release possible.

What's Changed

⚠️ Breaking Changes

The UntilOperationIsSucceeded(Func<bool>, int, Action<IWaitStrategy>) wait strategy is obsolete. Instead of this wait strategy, use any other wait strategy that matches your use case and configure the retry behavior accordingly (wait strategy options).

Using reuse together with the container builder method WithName(string) will generate a new reuse hash the first time you use the configuration. The container name was not included in calculating the reuse hash previously.

🚀 Features

🐛 Bug Fixes

  • fix: Add default file permission (755 for image build) (#1176) @HofmeisterAn
  • fix(MySql): Create an empty /var/lib/mysql-files directory to prevent older versions from failing to start (#1144) @0xced

📖 Documentation

🧹 Housekeeping

📦 Dependency Updates

3.8.0

19 Mar 15:14
14f9ad9
Compare
Choose a tag to compare

Thank you very much to all contributors once again. This version contains really great features and important fixes. Awesome increment 🙏.

What's Changed

⚠️ Breaking Changes

If you have overwritten the default logger previously (setting TestcontainersSettings.Logger), please be aware that each builder now offers a dedicated API to configure the actual logger. This has several advantages; among others, it integrates very nicely into xUnit.net's scoped loggers.

  • feat: Add WithLogger(ILogger) builder API (#1100) @0xced

🚀 Features

🐛 Bug Fixes

  • fix: Prevent a NullReferenceException when pulling uncached base images to build an image (#1126) @tom-englert
  • fix: Prevent .dockerignore entry from matching everything if it ends with globstart (#1122) @HofmeisterAn
  • fix: Consider the timestamp in the log message wait strategy (read the correct log message chunk) (#1110) @HofmeisterAn
  • fix(CosmosDb): SSL connection could not be established (#1109) @WakaToa

🧹 Housekeeping

  • chore: Ensure that stderr is empty after executing scripts (#1116) @0xced
  • chore: Use the pg_isready command to assess whether PostgreSQL is ready or not (#1111) @0xced
  • chore: Switch to the SDK's included Central Package Management (#1106) @HofmeisterAn
  • chore: Use relative ProjectReference paths instead of $(SolutionDir) (#1094) @0xced
  • chore: Update xUnit.net (#1087) @HofmeisterAn

📦 Dependency Updates

  • chore(deps): Bump Microsoft.Data.SqlClient from 5.1.0 to 5.1.3 in /tests/Testcontainers.SqlEdge.Tests (#1088) @dependabot
  • chore(deps): Bump Microsoft.Data.SqlClient from 5.1.0 to 5.1.3 in /tests/Testcontainers.MsSql.Tests (#1089) @dependabot

3.7.0

09 Jan 14:39
Compare
Choose a tag to compare

Happy New Year and a massive thank you to all the contributors who made the new version of Testcontainers for .NET possible 🙌!

What's Changed

🚀 Features

🐛 Bug Fixes

  • fix: Retry configuring Couchbase on HttpIOException (#1064) @mgroves

📖 Documentation

🧹 Housekeeping

  • chore: Update Ryuk image from version 0.5.1 to 0.6.0 (#1084) @HofmeisterAn
  • chore: Improve the Base64Provider resilience to malformed configuration files (#1081) @0xced
  • chore: Invert #if NETSTANDARD* conditional compilation conditions (#1079) @0xced
  • chore: Rename the file CouchDbContainerTest.cs to CouchbaseContainerTest.cs (#1067) @mgroves
  • chore: Replace custom wait strategy with default strategies (#1059) @ShirAvneri
  • chore: Remove Microsoft.SourceLink.GitHub (#1057) @HofmeisterAn
  • chore: Update .NET SDK to version 8 (LTS) (#1054) @HofmeisterAn

3.6.0

10 Nov 19:49
46c05d7
Compare
Choose a tag to compare

A heartfelt thank you to each contributor. Your contributions, whether through sharing ideas for improvements, identifying issues, submitting pull requests, or writing articles, are immensely appreciated and help me a lot. THANK YOU for your support.

What's Changed

⚠️ Breaking Changes

The members of the container and image builder, WithImagePullPolicy and WithImageBuildPolicy, previously received a callback argument of type ImagesListResponse. We've now updated these callbacks, and they will receive an argument of type ImageInspectResponse. This change was implemented to offer more detailed information regarding the actual cached image.

🚀 Features

🐛 Bug Fixes

  • fix: Retain the internal Couchbase builder configuration if the user overrides the default configuration (#1040) @HofmeisterAn
  • fix: Prevent invalid negative timestamps getting container logs (#1038) @mausch

📖 Documentation

🧹 Housekeeping

3.5.0

07 Sep 17:01
59991ec
Compare
Choose a tag to compare

What's Changed

🚀 Features

  • feat: Allow MongoDb module configuration without credentials (#983) @the-avid-engineer
  • feat: Add support for RSA private key (RsaPrivateCrtKeyParameters) TLS authentication with protected Docker daemon sockets (#978) @zuntio
  • feat: Add InfluxDb module (#975) @MelomanG

🐛 Bug Fixes

  • fix: Do not pre pull Dockerfile build stages that do not correspond to base images (#979) @HofmeisterAn

📖 Documentation

  • docs: Add documentation on enabling debug log messages for the default logger (#991) @HofmeisterAn
  • docs: Add global Testcontainers header (#967) @leocross

🧹 Housekeeping

  • chore: Improve error message when Docker is not running (#987) @0xced
  • chore: Update BouncyCastle.Cryptography to 2.2.1 (previous Portable.BouncyCastle) (#985) @jcmrva
  • chore: Add User-Agent HTTP header to Docker.DotNet client (#970) @eddumelendez
  • chore: Remove CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT env var (#971) @eddumelendez

3.4.0

10 Aug 17:55
b2b743b
Compare
Choose a tag to compare

Thank you to all contributors for your valuable efforts towards this release. Your contributions are greatly appreciated ❤️.

What's Changed

⚠️ Breaking Changes

🚀 Features

🐛 Bug Fixes

  • fix(CosmosDb): Wait until all partitions are started (#961) @jacobjmarks
  • fix: Do not dispose a custom HTTP message handler in an HTTP wait strategy (#958) @jacobjmarks
  • fix(MySql): Rename default database to test (do not use MySQL system schema) (#949) @benjaminoerskovtryg
  • fix: Replace mysql with mariadb binary in MariaDB module (#942) @FlorianHockmann
  • fix: Copy files to container without removing first character from filename (#938) @HofmeisterAn

📖 Documentation

  • docs: Provide instructions for copying directories or files to the container (#939) @HofmeisterAn

🧹 Housekeeping

3.3.0

27 Jun 11:19
402df92
Compare
Choose a tag to compare

What's Changed

🚀 Features

  • feat: Add support for copying directories and files to a container (#913) @HofmeisterAn
  • feat: Change access modifier of OracleBuilder.WithUsername(string) to public (#923) @0xced
  • feat: Add UsingHttpMessageHandler(HttpMessageHandler) to HttpWaitStrategy (#910) @mkstephenson

🐛 Bug Fixes

  • fix: Use the actual Docker endpoint to extract the socket path for the Resource Reaper (#930) @HofmeisterAn
  • fix: Ensure site_url is set in the MkDocs config to prevent None in sitemap generation (#927) @leocross
  • fix: Remove cref from inheritdoc (#922) @HofmeisterAn
  • fix: Add Docker Desktop (for Linux / macOS) authentication provider (#911) @HofmeisterAn

📖 Documentation

  • docs: Fix typo in Testcontainers properties file path (#935) @HofmeisterAn
  • docs: Update Testcontainers for Java docs url (#916) @leocross
  • docs: Add RabbitMQ module documentation incl. an example (#918) @annaerdi
  • docs: Replace "mess up" with "clutter up" in the best practices (#905) @gurry

🧹 Housekeeping

3.2.0

23 May 06:47
12571d7
Compare
Choose a tag to compare

What's Changed

🚀 Features

🐛 Bug Fixes

  • fix: Do not create a Port Forwarding Container instance if auto-discovery does not detect Docker host (#900) @HofmeisterAn
  • fix: Replace CLI command to detect open ports in Linux containers (#883) @HofmeisterAn
  • fix: Remove trailing slash from rootless Docker socket path (#881) @HofmeisterAn

📖 Documentation

🧹 Housekeeping

3.1.0

28 Apr 13:49
90a3006
Compare
Choose a tag to compare

What's Changed

⚠️ Breaking Changes

  • As mentioned in the two previous releases, we replaced the legacy extension method modules with a dedicated API. We recommend moving forward to the new API. In this release, all classes and interfaces related to the legacy extension method approach have been removed.

🚀 Features

🐛 Bug Fixes

📖 Documentation

🧹 Housekeeping

3.0.0

08 Mar 09:37
b3fb3cc
Compare
Choose a tag to compare

What's Changed

We have added and replaced the modules mentioned below. Each module contains its own builder and configuration type, making it much easier to support various test cases. Currently, the modules are designed to quickly spin up common configurations of real dependencies to establish a connection to the application or service running inside it.

We are interested in your opinions and requirements in regards of the module's capabilities. Creating great modules is a community effort, so please consider sharing your thoughts with us and other Testcontainers users in this discussion or in our Slack workspace.

We will continuously add module features and documentation. Currently, information on how to configure and run modules can be found in the tests. If you are already familiar with Testcontainers, you should have no trouble understanding it as the experience is very similar as before. Here is a quick example using xUnit.net:

public sealed class ModuleSupport : IAsyncLifetime
{
    private readonly MsSqlContainer _msSqlContainer = new MsSqlBuilder().Build();

    public Task InitializeAsync()
    {
        return _msSqlContainer.StartAsync();
    }

    public Task DisposeAsync()
    {
        return _msSqlContainer.DisposeAsync().AsTask();
    }

    [Fact]
    public void ConnectionStateReturnsOpen()
    {
        // Given
        using DbConnection connection = new SqlConnection(_msSqlContainer.GetConnectionString());

        // When
        connection.Open();

        // Then
        Assert.Equal(ConnectionState.Open, connection.State);
    }
}

⚠️ Breaking Changes

Old name New name
ITestcontainersContainer, IDockerContainer, IRunningDockerContainer IContainer
IDockerImage IImage
IDockerNetwork INetwork
IDockerVolume IVolume
TestcontainersBuilder ContainerBuilder
TestcontainersContainer DockerContainer
TestcontainersNetworkBuilder NetworkBuilder
TestcontainersVolumeBuilder VolumeBuilder
WithCreateContainerParametersModifier WithCreateParameterModifier

🚀 Features

🐛 Bug Fixes

📖 Documentation

🧹 Housekeeping