awesome-repositories.com
Blog
awesome-repositories.com

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

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

testcontainers/testcontainers-go

0
View on GitHub↗
4,889 stars·608 forks·Go·MIT·5 viewsgolang.testcontainers.org↗

Testcontainers Go

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 each test run operates within an isolated environment.

The system covers a broad range of orchestration capabilities, including image-based provisioning, container readiness verification through wait-strategy polling, and automated resource cleanup via a sidecar reaper to remove orphaned containers. These features support the creation of ephemeral test environments for services such as databases to verify software behavior in production-like conditions.

Features

  • Programmatic Container Managers - Allows developers to programmatically define and manage the lifecycle of Docker containers within Go code.
  • Container-Based Provisioning - Automates the deployment of pre-configured runtimes by pulling and instantiating containers from registry images.
  • Container Lifecycle Management - Provides programmatic capabilities to create, start, and destroy containers based on specific image configurations.
  • Container Startup Dependency Management - Manages the creation and removal of container-based service dependencies to ensure isolated test environments.
  • Docker Container Orchestrators - Orchestrates the mapping of container ports to host ports and resolves network endpoints for test clients.
  • Container Port Mappings - Resolves host addresses and mapped ports of running containers to establish client connections for tests.
  • Container Networking Configurations - Configures isolated virtual networks and random port mappings to facilitate parallel test execution.
  • Container Port Mapping - Implements dynamic mapping of container ports to random host ports to enable parallel test execution.
  • Infrastructure Provisioners - Handles the automatic setup and cleanup of temporary containerized services for clean test execution.
  • Containerized Test Libraries - Provides a Go library for managing Docker containers as disposable dependencies during integration tests.
  • Containerized Integration Tests - Enables running automated integration tests against real service instances in Docker containers.
  • Ephemeral Testing Environments - Provisions short-lived, isolated containerized infrastructure on demand for each automated test run.
  • Test Database Provisioners - Automatically creates and manages temporary database instances for isolated integration testing.
  • Orphaned Container Cleanup - Includes a sidecar reaper container that automatically removes orphaned containers after test completion.
  • Readiness Wait Strategies - Provides wait strategies that poll logs or network ports to verify container readiness before testing.
  • Dependency Orchestrators - Coordinates the readiness and lifecycle of external containerized service dependencies during test execution.
  • Docker Engine API Clients - Provides a programmatic Go client to interact with the Docker Engine API for container management.
  • Service Readiness Probes - Monitors logs and port status to determine when a containerized service is initialized and ready for traffic.
  • Parallel Test Execution - Supports concurrent test suite execution by mapping containers to random host ports to avoid collisions.

Star history

Star history chart for testcontainers/testcontainers-goStar history chart for testcontainers/testcontainers-go

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

Frequently asked questions

What does testcontainers/testcontainers-go do?

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.

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

The main features of testcontainers/testcontainers-go are: Programmatic Container Managers, Container-Based Provisioning, Container Lifecycle Management, Container Startup Dependency Management, Docker Container Orchestrators, Container Port Mappings, Container Networking Configurations, Container Port Mapping.

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

Open-source alternatives to testcontainers/testcontainers-go include: testcontainers/testcontainers-dotnet — Testcontainers for .NET is a Docker testing library and integration testing framework designed to manage the lifecycle… ory/dockertest — dockertest is a Docker integration testing library and programmatic Go client used to boot and manage ephemeral… testcontainers/testcontainers-java — Testcontainers for Java is a library for launching and managing disposable Docker containers to provide isolated… docker-archive-public/docker.kitematic — Kitematic is a graphical user interface for managing and running Docker containers on desktop operating systems. It… yeasy/docker_practice — This project is a Docker educational resource and a collection of practical examples designed for learning… docker-library/official-images — This project is a collection of curated and standardized Docker base images that serve as reliable starting points for…

Open-source alternatives to Testcontainers Go

Similar open-source projects, ranked by how many features they share with Testcontainers Go.
  • testcontainers/testcontainers-dotnettestcontainers avatar

    testcontainers/testcontainers-dotnet

    4,317View on GitHub↗

    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 communic

    C#automationdockerdotnet
    View on GitHub↗4,317
  • 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-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
  • docker-archive-public/docker.kitematicdocker-archive-public avatar

    docker-archive-public/docker.kitematic

    12,142View on GitHub↗

    Kitematic is a graphical user interface for managing and running Docker containers on desktop operating systems. It serves as a visual Docker management tool and API client that translates user interface interactions into REST API calls to control the Docker daemon without requiring the command line. The application is built as a cross-platform Electron desktop application, utilizing a Chromium-based shell to provide a consistent administrative interface across Mac and Windows. The software covers the full container lifecycle, including the creation, configuration, and monitoring of containe

    JavaScriptcontainersdockerelectron
    View on GitHub↗12,142
  • See all 30 alternatives to Testcontainers Go→