awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
testcontainers avatar

testcontainers/testcontainers-dotnet

0
View on GitHub↗
4,317 stars·348 forks·C#·MIT·10 viewsdotnet.testcontainers.org↗

Testcontainers Dotnet

Testcontainers for .NET is a Docker testing library and integration testing framework designed to manage the lifecycle of throwaway containers. It provides high-level abstractions as a Docker API wrapper to provision ephemeral infrastructure, replacing mocks with real database, messaging, and search engine instances to ensure isolated and reproducible test environments.

The project distinguishes itself through a builder-configuration-container pattern and a dynamic port binding mechanism that prevents collisions during concurrent test execution. It enables reliable service-to-service communication via virtual network orchestration and network aliasing, and ensures service availability through polling-based readiness checks for HTTP endpoints and TCP ports.

The library provides specialized modules for relational, NoSQL, and vector databases, as well as messaging brokers and cloud service emulators. Its capability surface extends to container image configuration, log collection, and the simulation of network conditions to verify system resiliency.

It supports connectivity to both local and remote Docker runtimes through standardized environment variables and configuration files.

Features

  • Automated Testing Containers - Creates and destroys isolated containers specifically for the automated test lifecycle across different operating systems.
  • Container Lifecycle Management - Provides a comprehensive framework for managing the full lifecycle of containers, including creation, networking, and cleanup.
  • Docker Integration Testing Libraries - Provides a library that automates the lifecycle of Docker containers to create isolated environments for integration tests.
  • Containerized Database Integration - Provisions disposable relational, NoSQL, or vector database instances in Docker to verify data persistence and query logic.
  • Containerized Instances - Starts and manages temporary Apache Cassandra database instances for use in automated tests.
  • Containerized Instances - Starts and stops column-oriented ClickHouse SQL database instances as throwaway containers for isolated tests.
  • Containerized Instances - Deploys MongoDB database containers with custom authentication and replica settings for isolated testing.
  • Containerized Instances - Starts throwaway PostgreSQL database instances with specific versions and configurations for isolated test environments.
  • Redis Provisioners - Manages the lifecycle of Redis instances by starting and removing throwaway containers for in-memory data storage.
  • Service Endpoint Retrieval - Extracts broker and HTTP URLs from running containers to connect client applications to the active instance.
  • Database Containers - Creates and starts disposable Db2 container instances for isolated database testing.
  • Test Database Provisioning - Provides automated deployment of database containers specifically tailored for development and integration testing environments.
  • Container Lifecycle Management - Manages the full lifecycle of creating, configuring, and cleaning up Docker containers during test suite execution.
  • Valkey Support - Deploys Redis-compatible Valkey in-memory data stores in containers to provide clean environments for automated tests.
  • Orphaned Container Cleanup - Automatically identifies and removes orphaned containers and resources after test execution to prevent environment clutter.
  • Ephemeral Container Cleanup - Automatically removes temporary containers and virtual networks after test completion to prevent resource leaks.
  • Docker Engine API Clients - Acts as a high-level SDK providing programmatic interfaces to interact with the Docker Engine API for container management.
  • Ephemeral Service Provisioning - Provides automatic creation and destruction of temporary containerized services to ensure isolated integration test environments.
  • Runtime Connectivity - Handles connectivity to local Docker daemons or remote container runtimes via standardized configurations.
  • Service Readiness Checks - Repeatedly queries HTTP endpoints or TCP ports to ensure services are fully initialized before proceeding with tests.
  • Container Connection Resolution - Provides automatic resolution of network addresses and API endpoints for containers to ensure reliable communication during integration tests.
  • Container Networking Configurations - Provides capabilities to create and manage isolated virtual networks for multi-container communication.
  • Container Port Mapping - Binds internal container ports to random available host ports to expose services to the test host.
  • Dynamic Port Binding - Binds container ports to random available host ports to prevent collisions between concurrent test executions.
  • Dynamic Port Listeners - Maps container ports to random available host ports to prevent collisions during concurrent test execution.
  • Container Network Linking - Connects multiple containers via a shared virtual network to enable communication between applications and test browsers.
  • Configuration Injection - Maps dynamic connection strings and environment variables into application configurations for integration testing.
  • Specialized Container Modules - Wraps generic container logic into specialized modules for specific databases and messaging systems to simplify setup.
  • Container Health Monitors - Monitors the internal health status of containers and pauses execution until they are ready.
  • Test Isolation - Ensures total environment isolation by creating a fresh, disposable container for every individual test.
  • Integration Testing Frameworks - Provides a framework to provision real database, messaging, and search engine containers to replace mocks in integration tests.
  • Elasticsearch Containers - Starts distributed Elasticsearch search and analytics engines in containers with support for HTTPS and passwords.
  • Qdrant Integrations - Manages the lifecycle of Qdrant vector database containers and provides API connection strings.
  • MongoDB Script Execution - Executes custom scripts inside a MongoDB database container and captures the exit code and output to verify state.
  • OpenSearch Containers - Spins up isolated OpenSearch instances with configurable security settings for automated tests.
  • SQL Script Execution - Runs SQL commands directly inside a Db2 container and captures execution results and error output.
  • Cloud Service Emulators - Runs containerized versions of cloud services locally to enable development and testing in isolation from the cloud.
  • Startup Arguments - Defines or overrides the entrypoint and command arguments that the container executes upon starting.
  • Version Pinning - Overrides default image tags to specific versions to ensure consistent and reproducible test environments.
  • CI/CD Pipeline Integrations - Integrates with container-hosting runners in pipeline tools to automate the lifecycle of test dependencies.
  • Azure Service Bus Emulators - Starts a local messaging emulator in a container to verify asynchronous communication code without cloud connectivity.
  • Event Hubs Emulators - Starts a local containerized instance of an event streaming service to test code in isolation from the cloud.
  • Container Environment Variable Injection - Configures container environments by setting variables and mapping local files or host directories.
  • Container CI/CD Pipelines - Integrates container-based dependencies into automated pipelines to run tests without relying on shared external infrastructure.
  • Container Image Building - Creates container images from a Dockerfile by specifying the build context and directory.
  • Container Image Configurations - Specifies the container image to use, including support for specific platforms and architecture resolution.
  • Container Reuse Strategies - Identifies and attaches to existing containers based on configuration to avoid redundant startup costs between test runs.
  • Container Network Attachments - Allows attaching existing containers to virtual networks to enable communication between disparate resources.
  • Virtual Network Isolations - Creates private network bridges to enable isolated service-to-service communication via aliases.
  • Port Readiness Verification - Monitors TCP ports and blocks test execution until the port is open and accepting incoming connections.
  • Virtual Network Creation - Sets up isolated virtual networks and assigns containers to them for communication via aliases without exposing ports.
  • Container Instance Sharing - Maintains a single container instance for multiple test classes to reduce startup overhead.
  • Builder Patterns - Implements a fluent builder pattern to define container specifications before instantiating the actual resource.
  • Container Log Retrieval - Provides utilities to fetch and stream logs from running containers for debugging and verification.
  • Browser Automation - Deploys pre-configured browser instances for executing automated web tests in isolation.
  • Readiness Checks - Implements polling-based readiness checks for HTTP endpoints to ensure services are fully initialized before tests proceed.
  • Network Condition Simulation - Simulates network conditions by injecting latency, timeouts, and bandwidth limits to verify system resiliency.
  • Testing Frameworks - Library for running tests with throwaway Docker containers.

Star history

Star history chart for testcontainers/testcontainers-dotnetStar history chart for testcontainers/testcontainers-dotnet

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Testcontainers Dotnet

Similar open-source projects, ranked by how many features they share with Testcontainers Dotnet.
  • ory/dockertestory avatar

    ory/dockertest

    4,521View on GitHub↗

    dockertest is a Docker integration testing library and programmatic Go client used to boot and manage ephemeral containers. It functions as a containerized test orchestrator that provides isolated environments for integration tests by managing the lifecycle of dependent services. The library handles ephemeral environment orchestration by provisioning temporary containers and networks. It ensures environment consistency through service readiness checks and automated resource cleanup to prevent leaks after test execution completes. The project covers containerized service validation, including

    Goautomationcidocker
    View on GitHub↗4,521
  • testcontainers/testcontainers-gotestcontainers avatar

    testcontainers/testcontainers-go

    4,889View on GitHub↗

    testcontainers-go is a Docker integration testing library for Go designed to provision and manage disposable containerized infrastructure. It functions as a container lifecycle manager and ephemeral infrastructure provisioner, allowing developers to programmatically create, start, and destroy containers as dependencies for automated integration tests. The library acts as a Docker network orchestrator by mapping container ports to random host ports and resolving network endpoints for test clients. This capability enables parallel test execution by preventing network collisions and ensures that

    Goautomationdockergo
    View on GitHub↗4,889
  • testcontainers/testcontainers-javatestcontainers avatar

    testcontainers/testcontainers-java

    8,660View on GitHub↗

    Testcontainers for Java is a library for launching and managing disposable Docker containers to provide isolated dependencies for automated tests. It provides specialized provisioners for containerized databases, a manager for WebDriver browser containers, and an orchestrator for deploying multi-container applications via Docker Compose. The project ensures reproducible data states through database schema initialization and provides integration with JUnit to manage the lifecycle of external services. It supports automated browser testing by launching Selenium containers with the ability to re

    Java
    View on GitHub↗8,660
  • yeasy/docker_practiceyeasy avatar

    yeasy/docker_practice

    26,111View on GitHub↗

    This project is a Docker educational resource and a collection of practical examples designed for learning containerization technologies. It serves as a guide for understanding container fundamentals, including the creation and management of custom images and the use of registries. The repository provides specialized references for container security hardening, such as managing kernel privileges and implementing supply chain security. It also includes tutorials for multi-container orchestration and a DevOps guide focused on CI/CD automation and image optimization. The material covers a broad

    Gobookcloud-computingcontainer
    View on GitHub↗26,111
See all 30 alternatives to Testcontainers Dotnet→

Frequently asked questions

What does testcontainers/testcontainers-dotnet do?

Testcontainers for .NET is a Docker testing library and integration testing framework designed to manage the lifecycle of throwaway containers. It provides high-level abstractions as a Docker API wrapper to provision ephemeral infrastructure, replacing mocks with real database, messaging, and search engine instances to ensure isolated and reproducible test environments.

What are the main features of testcontainers/testcontainers-dotnet?

The main features of testcontainers/testcontainers-dotnet are: Automated Testing Containers, Container Lifecycle Management, Docker Integration Testing Libraries, Containerized Database Integration, Containerized Instances, Redis Provisioners, Service Endpoint Retrieval, Database Containers.

What are some open-source alternatives to testcontainers/testcontainers-dotnet?

Open-source alternatives to testcontainers/testcontainers-dotnet include: ory/dockertest — dockertest is a Docker integration testing library and programmatic Go client used to boot and manage ephemeral… testcontainers/testcontainers-go — testcontainers-go is a Docker integration testing library for Go designed to provision and manage disposable… testcontainers/testcontainers-java — Testcontainers for Java is a library for launching and managing disposable Docker containers to provide isolated… yeasy/docker_practice — This project is a Docker educational resource and a collection of practical examples designed for learning… quarkusio/quarkus — Quarkus is a Kubernetes-native Java framework designed for building high-performance, memory-efficient applications.… apocas/dockerode — Dockerode is a Node.js library that provides programmatic management of Docker containers, images, and volumes by…