Testcontainers

Testcontainers ist eine Bibliothek, die Docker-Container in automatisierten Tests startet und stoppt. Sie ermöglicht realistische Integrationstests gegen echte Datenbanken, Message Broker oder andere Dienste – ohne Mocks.

Unterstützte Sprachen

Testcontainers ist für viele Sprachen verfügbar: Java, Python, Go, Node.js, .NET u.a.

Python Beispiel

pip install testcontainers
from testcontainers.postgres import PostgresContainer
import psycopg2

def test_postgres():
    with PostgresContainer("postgres:18.3-alpine3.23") as pg:
        conn = psycopg2.connect(pg.get_connection_url())
        cursor = conn.cursor()
        cursor.execute("SELECT version();")
        version = cursor.fetchone()
        print(version)
        assert version is not None

Wie es funktioniert

  1. Testcontainers startet einen Docker-Container zu Beginn des Tests.
  2. Der Test läuft gegen den echten Dienst im Container.
  3. Nach dem Test wird der Container automatisch gestoppt und entfernt.
docker container ls   # während des Tests ist der Container sichtbar

Voraussetzungen

Weitere Informationen