testcontainers-dotnet

A library to support tests with throwaway instances of Docker containers for all compatible .NET Standard versions.

MIT License

Stars
3.5K
Committers
97

Bot releases are visible (Hide)

testcontainers-dotnet - 3.9.0 Latest Release

Published by github-actions[bot] 4 months ago

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.

  • feat: Add wait strategy options (#1168) @HofmeisterAn
  • feat: Include the container name in the reuse hash (#1162) @0xced

🚀 Features

  • feat: Add Apache Pulsar module (#1103) @entvex
  • feat: Add custom configuration for retries, interval and timeout (#1169) @HofmeisterAn
  • feat: Add wait strategy options (#1168) @HofmeisterAn
  • feat: Include the container name in the reuse hash (#1162) @0xced

🐛 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

  • docs: Add reading file from a container (#1151) @HofmeisterAn

🧹 Housekeeping

  • chore: Remove PulsarContainer.CreateAuthenticationTokenAsync(TimeSpan) default arg (#1195) @entvex
  • chore : Do not block async context on acquire lock (#1188) @HofmeisterAn
  • chore: Prevent ReusableResourceTest from leaking resources (#1164) @0xced
  • refactor: Replace Azure SQL Edge with PostgreSQL (#1156) @HofmeisterAn
  • chore: Remove obsolete members (#1146) @HofmeisterAn

📦 Dependency Updates

  • chore: Bump BouncyCastle.Cryptography (#1179) @marco-carvalho
  • chore: Use new sshd:1.2.0 image (#1160) @mdelapenya
testcontainers-dotnet - 3.8.0

Published by github-actions[bot] 7 months ago

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

  • feat: Use built-in PEM certificate import on .NET 6 and onwards (#1139) @0xced
  • feat: Add WithLogger(ILogger) builder API (#1100) @0xced
  • feat: Add support for the target frameworks net6.0 and net8.0 (#1133) @HofmeisterAn
  • feat: Add Milvus module (#1131) @roji
  • feat: Embed symbols and enable continuous integration builds (deterministic source paths) (#1129) @tom-englert
  • feat: Add remote container registry identity token support (#1124) @HofmeisterAn
  • feat: Add URL-based resource mapping container builder API (#1118) @0xced
  • feat: Add CockroachDB module (#1077) @rafaumlemos
  • feat: Add reuse support (#1051) @david-szabo97

🐛 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
testcontainers-dotnet - 3.7.0

Published by github-actions[bot] 9 months ago

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

  • feat: Add Firebird SQL module (#1073) @park-jasper
  • feat(Azurite): Add in-memory support (#1063) @Xzelsius
  • feat: Add ArangoDB module (#1058) @ShirAvneri
  • feat: Add ActiveMQ Artemis module (#1055) @ShirAvneri
  • feat: Add Bigtable module (#1046) @peroyhav
  • feat: Add BigQuery module (#1034) @dejandjenic
  • feat: Add JanusGraph module (#837) @rngcntr
  • feat: Add Papercut module (#1044) @TechLiam
  • feat: Improve tar stream logging (copy files to container) (#1050) @HofmeisterAn

🐛 Bug Fixes

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

📖 Documentation

  • docs: Add ASP.NET integration test example (#1061) @HofmeisterAn

🧹 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
testcontainers-dotnet - 3.6.0

Published by github-actions[bot] 11 months ago

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.

  • feat: Use Docker's inspect API to get resource information (#1018) @HofmeisterAn

🚀 Features

  • feat: Extend the "wait until file exists" API to distinguish between the test host and container filesystem (#1009) @maaex
  • chore: Do not pre-pull cached images (#1032) @HofmeisterAn
  • feat: Add Consul module (#1028) @witskeeper
  • feat: Add Google Cloud Storage API (fake-gcs-server) module (#1023) @KSemenenko
  • feat: Add PubSub module (#1005) @dejandjenic
  • feat: Share common interface (IDatabaseContainer) for ADO.NET compatible containers (#920) @0xced
  • feat: Use Docker's inspect API to get resource information (#1018) @HofmeisterAn
  • feat: Ignore FROM args when pre-pulling images (#1016) @HofmeisterAn
  • feat: Add NATS module (#1003) @niklasfp
  • feat: Add Firestore module (#988) @dejandjenic

🐛 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

  • docs: Add Neo4j example (#1013) @khalidabuhakmeh
  • docs: Add MongoDB example (#1012) @khalidabuhakmeh
  • docs: Add Elasticsearch example (#1010) @khalidabuhakmeh
  • docs: Add Microsoft SQL Server example (#1008) @khalidabuhakmeh
  • docs: Add Flyway example (#1002) @HofmeisterAn

🧹 Housekeeping

  • refactor: Cache Docker image full and host name (#1043) @HofmeisterAn
  • chore: Remove unnecessary internal APIs (#1020) @HofmeisterAn
  • chore: Update SSH.NET to version 2023.0.0 (#1019) @WojciechNagorski
testcontainers-dotnet - 3.5.0

Published by github-actions[bot] about 1 year ago

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
testcontainers-dotnet - 3.4.0

Published by github-actions[bot] about 1 year ago

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

What's Changed

⚠️ Breaking Changes

  • chore: Remove WithResourceMapping(string, string, UnixFileModes) obsolete flag (#964) @HofmeisterAn
  • chore: Remove obsolete member CopyFileAsync (#937) @HofmeisterAn

🚀 Features

  • feat: Add Azure Data Explorer Kusto emulator module (#963) @JonasBenz
  • feat: Restore output consumer support (#959) @jacobjmarks
  • feat: Pull dependent images from private registries while building an image (#951) @benjaminangerer
  • feat: Add ClickHouse module (#944) @smbecker
  • chore: Disable Elasticsearch GeoIP2 downloads (#945) @HofmeisterAn

🐛 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

  • chore: Disable signing NuGet dependencies (#968) @HofmeisterAn
  • chore: Add test coverage to unbound port bindings (#966) @HofmeisterAn
  • chore: Bump Azurite from 3.23.0 to 3.24.0 (#947) @Xzelsius
  • chore: Remove obsolete member CopyFileAsync (#937) @HofmeisterAn
testcontainers-dotnet - 3.3.0

Published by github-actions[bot] over 1 year ago

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

  • chore: Add DebugLogLevelEnabled property to default logger implementation (#928) @HofmeisterAn
  • chore: Set ContinuousIntegrationBuild and EmbedUntrackedSources MSBuild propery (#926) @HofmeisterAn
  • fix: Prefer indexing instead of Enumerable methods (#912) @HofmeisterAn
  • fix: Refactor tests to support Podman container runtime (#906) @HofmeisterAn
  • chore: Update WeatherForecast example (#904) @HofmeisterAn
  • chore: Refactor legacy TestcontainersContainerTest class (#901) @HofmeisterAn
testcontainers-dotnet - 3.2.0

Published by github-actions[bot] over 1 year ago

What's Changed

🚀 Features

  • feat: Add TC host strategy (#885) @HofmeisterAn
  • feat: Add Keycloak module (#880) @VMelnalksnis
  • feat: Add Docker image build policy (#882) @HofmeisterAn

🐛 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

  • docs: Add information about running Testcontainers in specific CI environments (#895) @HofmeisterAn
  • fix: Typo in Selenium (#893) @dotkarl
  • docs: Link to Wikipedia to explain the .properties file format (#889) @HofmeisterAn
  • docs: Add Docker remote host configuration (#888) @HofmeisterAn

🧹 Housekeeping

  • chore: Favor custom environment variable configurations over properties file (#899) @HofmeisterAn
  • chore: Update Docker.DotNet from version 3.125.13 to 3.125.15 (#898) @HofmeisterAn
  • chore: Update Ryuk image from version 0.4.0 to 0.5.1 (#896) @HofmeisterAn
  • chore: Build image with ITestcontainersClient implementation (#884) @HofmeisterAn
testcontainers-dotnet - 3.1.0

Published by github-actions[bot] over 1 year ago

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

  • feat: Add default session-id label to Docker resources (#878) @HofmeisterAn
  • feat: Expose host ports (#873) @HofmeisterAn
  • feat: Automatically detect Docker Desktop for Linux rootless socket (#872) @HofmeisterAn
  • feat: Replace Azurite module (#871) @HofmeisterAn
  • feat: Add .NET Source Link to modules (#870) @HofmeisterAn
  • feat: Detect rootless Docker endpoint configurations (#868) @HofmeisterAn
  • feat: Always use Docker's assigned random host port (Ryuk) (#852) @HofmeisterAn
  • feat: Add container builder member to depend on other Docker resources (#832) @HofmeisterAn
  • feat: Add K3s module (#835) @adar2
  • feat: Replace CosmosDb module (#833) @AButler
  • feat: Add WebDriver module (#780) @ShaharM7

🐛 Bug Fixes

  • fix: KafkaException (timeout) while creating a topic (#849) @HofmeisterAn
  • fix: Log Docker image build progress messages (#839) @HofmeisterAn

📖 Documentation

  • docs: Explain how to delete multi-stage intermediate layers (#867) @HofmeisterAn
  • docs: Explain the Docker build context (building a Docker image) (#861) @HofmeisterAn
  • docs: Update ASP.NET Core Blazor out-off-process example (#838) @HofmeisterAn
  • docs: Update the documentation and WeatherForecast example (#823) @HofmeisterAn

🧹 Housekeeping

  • chore: Update Ryuk image from version 0.3.4 to 0.4.0 (#854) @HofmeisterAn
  • chore: Update LocalStack image from version 1.4 to 2.0 (#864) @HofmeisterAn
  • chore: Update Redpanda image (#840) @eddumelendez
  • feat: Prepare next release cycle (3.1.0) (#822) @HofmeisterAn
testcontainers-dotnet - 3.0.0

Published by github-actions[bot] over 1 year ago

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

  • chore!: Remove legacy WithCreateContainerParametersModifier(Action) (#809) @HofmeisterAn
  • chore!: Remove legacy IDockerImage (#808) @HofmeisterAn
  • chore!: Remove legacy TestcontainersVolumeBuilder, IDockerVolume (#805) @HofmeisterAn
  • chore!: Remove legacy TestcontainersNetworkBuilder, IDockerNetwork (#804) @HofmeisterAn
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

  • feat: Sign assemblies with a strong name (#815) @HofmeisterAn
  • feat: Add SQL Edge module (#812) @HofmeisterAn
  • feat: Replace Kafka module (#802) @HofmeisterAn
  • feat: Replace Couchbase module (#798) @HofmeisterAn
  • feat: Add Redpanda module (#796) @eddumelendez
  • fix: Wait until container ports are mapped, removed generated credentials (#791) @HofmeisterAn
  • feat: Replace output consumer with IContainer.GetLogsAsync(DateTime, DateTime, bool, CancellationToken) (#793) @HofmeisterAn
  • feat: Add EventStoreDb module (#778) @meysamhadeli
  • feat: Replace Elasticsearch module (#790) @HofmeisterAn
  • feat: Replace RabbitMq module (#788) @HofmeisterAn
  • feat: Replace Neo4j module (#785) @HofmeisterAn
  • feat: Replace CouchDb module (#779) @HofmeisterAn
  • feat: Replace MongoDB module (#776) @HofmeisterAn
  • feat: Add DynamoDB module (#768) @dominikus1993
  • feat: Replace PostgreSQL module (#772) @HofmeisterAn
  • feat: Replace Oracle module (#770) @HofmeisterAn
  • feat: Add RavenDB module (#769) @HofmeisterAn
  • feat: Add MinIO module (#760) @dominikus1993
  • feat: Replace Redis module (#764) @HofmeisterAn
  • feat: Replace MariaDB module (#763) @HofmeisterAn
  • feat: Replace MySQL module (#761) @HofmeisterAn
  • feat: Replace Microsoft SQL Server module (#757) @HofmeisterAn

🐛 Bug Fixes

  • fix: InvalidOperationException when adding future volume (#817) @HofmeisterAn
  • fix: Wait until container ports are mapped, removed generated credentials (#791) @HofmeisterAn
  • fix(#783): Dispose container while Resource Reaper is disabled (#789) @HofmeisterAn

📖 Documentation

  • docs: Add best practices (#816) @HofmeisterAn
  • docs: Add community links (#807) @HofmeisterAn
  • docs: Update Testcontainers for Node docs link (#806) @cristianrgreco
  • docs: Add section 'Implement a module' (#771) @HofmeisterAn
  • docs: Replace obsolete builders (#756) @HofmeisterAn

🧹 Housekeeping

  • fix: Coverlet 'Unable to read beyond end of stream' IOException (#800) @HofmeisterAn
  • chore: Clean up EventStoreDb module (#792) @HofmeisterAn
  • chore: Clean up LocalStack module (#781) @HofmeisterAn
  • chore: Clean up DynamoDB module (#774) @HofmeisterAn
  • chore: Clean up MinIO module (#766) @HofmeisterAn
  • fix: Use TCP to connect to the MySQL module (#765) @HofmeisterAn
  • fix: Use sqlcmd utility to detect readiness of the container (#759) @HofmeisterAn
  • fix: Move MsSqlContainerTest class to namespace (#758) @HofmeisterAn
  • chore: Update the WeatherForecast example to 2.4.0 (#754) @HofmeisterAn
  • chore: Remove obsolete property IDockerNetwork.Id (#753) @HofmeisterAn
  • feat: Prepare next release cycle (2.5.0) (#752) @HofmeisterAn
testcontainers-dotnet - 2.4.0

Published by github-actions[bot] over 1 year ago

What's Changed

⚠️ Breaking Changes

We made a concerted effort to avoid breaking changes as much as possible. Our goal was to provide a smooth transition to the new version for our users. To achieve this, we have flagged all upcoming breaking changes as obsolete, which means that they will still work for now but will be removed in the next version.

However, there may be cases where we are unable to maintain backwards compatibility. In such instances, we will do our best to provide clear documentation and guidance on how to update your code to work with the new version. We apologize in advance for any inconvenience this may cause and we appreciate your understanding.

  1. The interface member IWaitUntil.Until(ITestcontainersContainer, ILogger) has been changed to IWaitUntil.UntilAsync(IContainer). The container instance now holds the instance of ILogger.

  2. The member ImageFromDockerfileBuilder.Build() does not return a Task<string> anymore. It returns an implementation of IFutureDockerImage. To finally build the image call CreateAsync(CancellationToken).

  3. Use the ContainerBuilder instead of TestcontainersBuilder<TestcontainersContainer> or ContainerBuilder<DockerContainer> for generic (non module) configurations. If you rely on the module builder, please be aware of https://github.com/testcontainers/testcontainers-dotnet/issues/750#issuecomment-1412257694 for now.

  4. Following interfaces and classes has been renamed (the old interfaces and classes are still supported in 2.4.0):

    Old name New name
    ITestcontainersContainer, IDockerContainer, IRunningDockerContainer IContainer
    IDockerImage IImage
    IDockerNetwork INetwork
    IDockerVolume IVolume
    TestcontainersBuilder ContainerBuilder
    TestcontainersNetworkBuilder NetworkBuilder
    TestcontainersVolumeBuilder VolumeBuilder
    TestcontainersContainer DockerContainer
  • feat(#493): Add container lifecycle events (#743) @HofmeisterAn
  • refactor(#493): Replace module extension methods with module API (#729) @HofmeisterAn

🚀 Features

  • feat: Invoke create parameter modifier for image, network, volume build or create (#746) @HofmeisterAn
  • feat(#493): Add .NET module template (#742) @HofmeisterAn
  • feat(#493): Add container lifecycle events (#743) @HofmeisterAn
  • feat(#493): Add low level modifications API for all resources (#741) @HofmeisterAn
  • refactor(#493): Replace module extension methods with module API (#729) @HofmeisterAn
  • feat: Add GitHub Codespaces configuration (Dev Container) (#735) @HofmeisterAn
  • feat(#725): Do not return JSON auth config for partial Docker registry matches (#726) @HofmeisterAn
  • chore: Replace SharpZipLib TarArchive helper class with TarOutputStream (#724) @HofmeisterAn
  • feat: Include file path in TarException: Entry closed at [...] (Docker build) (#720) @HofmeisterAn
  • feat(#715): Add HttpWaitStrategy (#717) @HofmeisterAn

🐛 Bug Fixes

  • fix: Wait until LocalStack writes ready message (#738) @HofmeisterAn

📖 Documentation

  • chore: Add link Open in GitHub Codespaces (#739) @eddumelendez
  • docs: Add Docker Desktop Compose example (#731) @HofmeisterAn

🧹 Housekeeping

  • chore: Rename release branch to main (#748) @HofmeisterAn
  • feat(#493): Prepare module NuGet support, sign NuGet (#744) @HofmeisterAn
  • chore: Replace host port 0 with an empty string (#727) @HofmeisterAn
  • fix: Remove Sonar finding csharpsquid:S6444 (#721) @HofmeisterAn
  • chore: Increase HttpWaitStrategy test coverage (#719) @HofmeisterAn
  • fix: Remove Sonar finding csharpsquid:S1006 (#718) @HofmeisterAn
  • chore: Reduce concurrent builds (#714) @HofmeisterAn
  • feat: Prepare next release cycle (2.4.0) (#711) @HofmeisterAn
testcontainers-dotnet - Release 2.3.0

Published by HofmeisterAn almost 2 years ago

As part of this release we had 9 issues closed.

Added

  • #531 Add Docker health status wait strategy (@kfrajtak)
  • #640 Add ITestcontainersBuilder<TDockerContainer>.WithResourceMapping to copy files or any binary contents into the created container before it is started
  • #654 Add ITestcontainersNetworkBuilder.WithOption (@vlaskal)
  • #678 Add support of custom configuration TESTCONTAINERS_HOST_OVERRIDE and TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE
  • #694 Add Resource Reaper (Ryuk) privileged mode support (TESTCONTAINERS_RYUK_CONTAINER_PRIVILEGED)

Changed

  • #642 Expose container port bindings automatically
  • #603 Add default logger that forwards messages to the console (does not support every test environment)
  • #683 Return the gateway address (IDockerContainer.Hostname) of a network if one is assigned
  • #703 ResourceReaper.GetAndStartDefaultAsync no longer support optional arguments, it is necessary to set the Resource Reaper configuration immediately

Fixed

  • #610 Trim traling slashes in Dockerfile directory path (otherwise, it cuts the first character of the relative path), Normalize paths to forward slashes
  • #648 Always include .dockerignore and Dockerfile files in tarball (docker build)
  • #650 Update SharpZipLib to version 1.4.1 to prevent a deadlock in the Docker container image build
  • #666 DockerImageNotFoundException when logged in with Docker Desktop instead of the CLI

Thanks for your contributions 🙏

testcontainers-dotnet - Release 2.2.0

Published by HofmeisterAn almost 2 years ago

As part of this release we had 24 issues closed.

Added

  • #370 Add protected Docker daemon socket support (@vlaskal)
  • #421 Add Azurite module (@vlaskal)
  • #421 Add Cosmos DB Linux Emulator (@Yeseh, @ktjn)
  • #504 Add Elasticsearch module (@chertby)
  • #516 Add ITestcontainersBuilder<TDockerContainer>.WithTmpfsMount (@chrisbbe)
  • #520 Add MariaDB module (@renemadsen)
  • #528 Do not require the Docker host configuration (DockerEndpointAuthConfig) on TestcontainersSettings initialization
  • #538 Support optional username and password in MongoDB connection string (@the-avid-engineer)
  • #540 Add Docker registry authentication provider for DOCKER_AUTH_CONFIG environment variable (@vova-lantsov-dev)
  • #541 Allow MsSqlTestcontainerConfiguration custom database names (@enginexon)
  • #558 Support relative base directories other than the working directory with WithDockerfileDirectory
  • #565 Add ExecScriptAsync (MongoDB Shell) to MongoDB module
  • #579 Add Neo4j module (@kaiserbergin)
  • #583 Add XML documentation to NuGet
  • #592 Add LocalStack module (@bgener)
  • #594 Add IDockerContainer.GetLogs
  • #601 Add ITestcontainersBuilder<TDockerContainer>.WithImagePullPolicy (@BenasB)
  • #616 Add ITestcontainersBuilder<TDockerContainer>.WithMacAddress (@seb1992)
  • #618 Match .dockerignore entry * to all files and directories
  • #626 Support MySQL root password configuration (@DanielHabenicht)

Changed

  • #571 Update wnameless/oracle-xe-11g-r2 to gvenzl/oracle-xe:21-slim

Fixed

  • #525 Read ServerURL, Username and Secret field from CredsStore response to pull private Docker images
  • #595 Implement TestcontainersContainer.DisposeAsync thread safe (rename TestcontainersState to TestcontainersStates)
  • #604 Do not deny all files in the Docker image tarball when a .dockerignore entry ends with /
  • #610 Do not deny all files in the Docker image tarball when a .dockerignore entry ends with /*
  • #632 Execute local database scripts (inside the container) against localhost
  • #634 JsonReaderException in Docker.DotNet with Docker Desktop 4.13.0 (https://github.com/dotnet/Docker.DotNet/issues/595)

Thanks for your contributions 🙏

testcontainers-dotnet - Release 2.1.0

Published by HofmeisterAn about 2 years ago

As part of this release we had 11 issues closed.

Added

  • #481 Add builder access to the CreateContainerParameters instance (@Xitric)
  • #483 Support custom resource reaper image via TestcontainersSettings.ResourceReaperImage (@vlaskal)
  • #495 Add CHANGELOG.md
  • #496 Support ~/.testcontainers.properties custom configuration
  • #500 Add trace output while building or pulling a Docker image (@michal-korniak)
  • #501 Throw an exception when Docker image has not been built (@michal-korniak)
  • #509 Check if the authentication provider can establish a Docker endpoint connection
  • #510 Add IImageFromDockerfileBuilder.WithBuildArgument (@michal-korniak)
  • #511 Remove temp Dockerfile archive after Docker build (@michal-korniak)
  • #512 Throw ArgumentException if Docker image name contains uppercase characters (@michal-korniak)

Removed

  • #497 Remove ResourceReaperDiagnostics

Fixed

  • #431 Fix System.InvalidOperationException : cannot hijack chunked or content length stream (update Docker.DotNet dependency)
  • #449 Fix wrong mapped public host port
  • #484 Fix unit tests that fail on Windows hosts (@vlaskal)
  • #507 Fix ITestcontainersConfiguration duplication, such as DockerApiException : [...] Duplicate mount point [...] (@alesandrino)

Thanks for your contributions 🙏

testcontainers-dotnet - Release 2.0.1

Published by HofmeisterAn over 2 years ago

As part of this patch release we had 2 issues closed.

  • #449 Fixes ResourceReaperException, Testcontainers couldn't establish a connection to the resource reaper (public host port wasn't set)
  • #485 Fixes ArgumentNullException while mapping the network configurations in TestcontainersConfigurationConverter (@pellared)
testcontainers-dotnet - Release 2.0.0

Published by HofmeisterAn over 2 years ago

With this release, we transferred the repository to the official Testcontainers organization. As part of this release we had 3 issues closed.

  • #455 Add WithNetworkAliases (@vlaskal).
  • #461 Add Docker credentials helpers (@harrhp).
  • #470 Fixes HubImageNamePrefix in combination with private Docker registry credentials (@bohlenc).
testcontainers-dotnet - Release 1.6.0

Published by HofmeisterAn over 2 years ago

As part of this release we had 10 issues closed.

⚠️ This version has breaking changes. It contains a lot of new features, including performance and stability improvements.

  • #242, #464 Add Resource Reaper (@PSanetra, @s-rech).
  • #393 Pass container instance to wait strategy.
  • #398 Add MongoDB module (@RMariowski).
  • #403 Add managed volume.
  • #430 Get file from a running container (@s-rech).
  • #444 Add Docker credentials store (credentials helpers not included).
  • #463 Use DOCKER_HOST as Docker endpoint (supports custom client configurations).
  • #466 Add Docker Hub substitution (@bohlenc).
  • #428 Fixes NullReferenceException when Docker image is not set (@jlevier-ae).
  • #390 Get the ExecResult instead of the exit code from IDockerContainerOperations.ExecAsync (@fabiogouw).
  • #399 Add IDatabaseScript.IDatabaseScript for TestcontainerDatabase (@fabiogouw).

📝 If your Docker host can't access the domain socket (or IPC socket) /var/run/docker.sock, disable the Resource Reaper (TestcontainersSettings.ResourceReaperEnabled = false).

testcontainers-dotnet - Release 1.5.0

Published by HofmeisterAn over 3 years ago

As part of this release we had 7 issues closed.

  • #356, #357 Add WithStartupCallback.
  • #324 Add WithNetwork (@brethubbard).
  • #371 Add UDP, TCP and SCTP support for port bindings (@Uzivatel919).
  • #381 Add netstandard2.0 (@chrisbbe).
  • #335 Fix issue, where StartAsync cannot be canceled.
  • #379 Fix issue, where the overwritten configuration (appsettings.Environment.json) was not applied (@as-ivanov).
testcontainers-dotnet - Release 1.4.0

Published by HofmeisterAn about 4 years ago

As part of this release we had 5 issues closed.

  • #31 Support authentication against private Docker Hubs.
  • #265 Replace SolutionInfo.cs with Shared.msbuild.
  • #258 Add Couchbase Testcontainers (@mustafaonuraydin).
  • #218 Add .dockerignore file support.
  • #309 Fix issue, where TestcontainersContainer.StartAsync breaks Coverlet code coverage generation.
  • Many minor improvements.
testcontainers-dotnet - Release 1.3.0

Published by HofmeisterAn over 4 years ago

As part of this release we had 5 issues closed.

  • #213 Support Docker-in-Docker (mounted docker-socket) (by @farodin91)
  • #220 Add Oracle XE example container (by @EvdAnton).
  • #232 Add missing Docker image name pattern (by @superkartoffel).
  • #237 Fix issue, where ImageFromDockerfileBuilder does not tag large Docker images (by @Jejuni).
  • #247 Fix issue, where ITestcontainersBuilder configurations were added twice for module configurations.