//Cloudogu EcoSystem Docs

Goss Spec

Seit Version 0.13.0 ist die cesapp in der Lage, Tests zur Verifizierung von goss specs auszuführen.

Wie man eine Goss-Spec für einen Container schreibt

Es gibt zwei Möglichkeiten, goss specs für einen dogu zu schreiben. Der harte Weg und der einfache Weg.

Der harte Weg

  • Erstellen Sie eine Datei unter spec/goss/goss.yaml.
  • Hinzufügen von Testfällen wie in der goss-Dokumentation beschrieben
  • Testen Sie Ihre Spezifikation mit cesapp verify dogu-directory.

Der einfache Weg

  • Erstellen Sie eine leere Datei unter spec/goss/goss.yaml.
  • verifizieren Sie die Spezifikation, behalten Sie den Test-Container mit cesapp verify dogu-directory --keep-container und ignorieren Sie den verify-Fehler
  • in den Container springen mit docker exec -ti dogu-name bash
  • Ändern Sie das Verzeichnis in /spec/goss.
  • nun können Sie Tests zu goss spec hinzufügen z.B.: goss add file /etc/nginx/nginx.conf, für eine vollständige Liste schauen Sie in die goss documentation

Wie es funktioniert

  • Die cesapp erstellt das Container-Image des dogu
  • Der Dogu-Container wird mit Volumes für das Goss-Binär- und das Spec-Verzeichnis erstellt
  • Der Container wird mit dem Goss-Binary unter /usr/bin/goss und dem Spec-Verzeichnis unter /spec gestartet.
  • Die cesapp wartet, bis das Dogu gesund ist.
  • Goss wird im Container mit /spec/goss/goss.yaml als Eingabe ausgeführt
  • Der Testcontainer wird gestoppt und entfernt

Build-Server-Integration

Der Befehl verify ist in der Lage, die Ergebnisse in einer Build-Server-freundlichen Weise zu speichern, z.B.: cesapp verify dogu-directory --ci --report-directory reports. Der Befehl formatiert nun die Ausgabe im Junit-Format und schreibt den Bericht in die Datei reports/goss_doguname.xml.