Container: Googles Container Structure Tests bietet Testmöglichkeiten für Docker

Das von Google veröffentlichte Framework Container Structure Test bietet vier verschiedene Tests zum Verifizieren von Inhalten und Strukturen von Docker-Containern. Google hat das Werkzeug intern bereits im vergangenen Jahr erfolgreich eingesetzt.

In Pocket speichern vorlesen Druckansicht
Container: Googles Container Structure Tests bietet Testmöglichkeiten für Docker
Lesezeit: 1 Min.
Von
  • Björn Bohn

Google hat mit dem Container-Structure-Test-Framework ein Werkzeug zum Verifizieren von Inhalten und Strukturen von Docker-Containern veröffentlicht. Intern hat Google das Framework wohl schon im vergangenen Jahr eingesetzt, möchte es aber nun mit der Öffentlichkeit teilen. Zusammengesetzt ist das Framework aus vier verschiedenen Testvarianten: Command Tests, File Existence Tests, File Content Tests und Metadata Tests.

Mit den Command Tests können Entwickler Kommandos spezifizieren und in einem Container ausführen, um dann zu verifizieren, ob der daraus resultierende Output auch wie erwartet ausfällt. Das Framework verwendet reguläre Ausdrücke, um die Ergebnisse der Kommandos zu vergleichen. Außerdem können Entwickler Set-up- und Teardown-Kommandos mit jedem Test individuell ausführen und Umgebungsvariablen für Tests festlegen.

Bei den File Existence Tests und den File Content Tests handelt es sich um eine Möglichkeit, den Inhalt eines Dateisystems im Docker-Image zu überprüfen. Wie die Namen bereits verraten, handelt es sich dabei entweder um Tests die rein auf die Existenz einer Datei achten, oder eben den Inhalt einer Datei oder eines Verzeichnisses prüfen.

Zu guter Letzt können mit dem Metadata Test die Konfiguration eines Containers überprüft werden. Damit stellen Entwickler beispielsweise sicher, dass ein Dockerfile korrekt in einem Container manifestiert ist.

Die Container-Tests laufen ebenfalls im von Google entwickelten Tool Bazel. Interessierte Entwickler finden das Framework inklusive ausführlicher Dokumentation auf Github. (bbo)