Zum Hauptinhalt Zur Navigation

Golem Plus Artikel
Softwareentwicklung:
Testcontainers nimmt Integrationstests ihren Schrecken

Warum das Framework Testcontainers bei integren Integrationstests ein Segen ist – und fast uneingeschränkt empfohlen werden kann.
/ Rene Koch
1 Kommentare News folgen (öffnet im neuen Fenster)
Testcontainers ist ein Werkzeug, das Integrationstests spürbar auf ein neues Niveau hebt. (Bild: Ralf1403/Pixabay)
Testcontainers ist ein Werkzeug, das Integrationstests spürbar auf ein neues Niveau hebt. Bild: Ralf1403/Pixabay

Es war an einem Dienstagmorgen, an einem Tag, an dem ich eigentlich Produktivität geplant hatte. Ich klickte gut gelaunt auf "Run All Tests" und rechnete mit einem grünen Balken, einem kurzen Schulterklopfen an mich selbst und vielleicht sogar einem zweiten Kaffee. Stattdessen bekam ich: rot. Alles rot. "Connection refused". Super. Meine Integrationstests beschlossen offenbar, ohne mich in den Streik zu treten. Ich öffnete Docker Desktop. Laut UI lief meine Datenbank "healthy" – was aber unglaubwürdig war. Ein Kollege rief rüber: "Hast du wieder Ports verhext?" Ich nicht, diesmal nicht!

Aber zugeben musste ich: Möglich war es immer. Nach einer halben Stunde digitalem Höhlenforschen fand ich den Übeltäter: Ein anderer Test hatte meinen lokalen PostgreSQL-Container verstellt. Meine Tests redeten also mit einer Datenbank, die praktisch in einem Paralleluniversum lebte. Ich nahm einen tiefen Schluck Kaffee, sah resigniert auf den Bildschirm und dachte: "Warum baue ich eigentlich Software – wenn ich jeden Morgen Indiana Jones spielen muss?" Genau an diesem Tag stolperte ich über Testcontainers. Seitdem muss ich meine Datenbank nicht mehr suchen. Sie kommt einfach von selbst. Im diesem Deep Dive werden die Mechanismen von Testcontainers, Best Practices und ein praxisnahes C#-/xUnit-Setup im Detail betrachtet.

Golem Plus Artikel