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
- Testcontainers startet einen Docker-Container zu Beginn des Tests.
- Der Test läuft gegen den echten Dienst im Container.
- Nach dem Test wird der Container automatisch gestoppt und entfernt.
docker container ls # während des Tests ist der Container sichtbar
Voraussetzungen
- Docker muss auf dem Rechner installiert und gestartet sein.
- Der Benutzer, der die Tests ausführt, muss Zugriff auf den Docker-Socket haben.
Weitere Informationen
- https://testcontainers.com/
- https://github.com/testcontainers/testcontainers-python