//Cloudogu EcoSystem Docs

Setup für die Integrationstests

In diesem Abschnitt werden die Schritte beschrieben, die zur ordnungsgemäßen Durchführung der Integrationstests erforderlich sind.

Voraussetzungen

  • Es ist notwendig, das Programm yarn zu installieren.

Konfiguration

Damit alle Integrationstests ordnungsgemäß funktionieren, müssen vor dem Start einige Konfigurationen vorgenommen werden.

Konfiguration der cypress.json

[integrationTests/cypress.json]

  • Die base-URL muss an das Hostsystem angepasst werden.

    • Dazu muss das Feld baseUrl an den Host-FQDN angepasst werden (z.B. https://local.cloudogu.com).
  • DoguName - Bestimmt den Namen des aktuellen Dogu und wird im Routing verwendet.
  • MaxLoginRetries - Bestimmt die Anzahl der Anmeldeversuche, bevor ein Test fehlschlägt.
  • AdminUsername - Der Benutzername des CES-Administrators.
  • AdminPassword - Das Passwort des CES-Administrators.
  • AdminGroup - Die Benutzergruppe für CES-Administratoren.
  • AdminRole - Die Backup-Dogu-spezifische Benutzergruppe für CES-Administratoren. Wenn dieser Wert gesetzt ist, können standardmäßig CES-Administratoren OHNE diese Gruppe das Backup-Dogu nicht bedienen.

Admin-Rolle festlegen

Damit die Integrationstests erfolgreich durchgeführt werden können, muss der Schlüssel admin_role gesetzt sein:

  • Setzen Sie die Admin-Rolle über etcdctl set /config/backup/admin_role IntegrationTestAdmin
  • Starten Sie das Dogu über docker restart backup neu
  • (optional, aber sinnvoll) im Usermgt eine Gruppe "IntegrationTestAdmin" dem eigenen CES-Administrator zuordnen

    • im Test wird voraussichtlich diese Gruppe angelegt und nicht wieder aufgeräumt. Die Entfernung der Gruppe ist schwierig, da dies nur in Tests aus der @cloudogu/dogu-integration-test-library betrifft und eine Änderung der Tests nicht für alle Dogus gültig sein müssen.

Starten der Integrationstests

Happy Path

Um die Gutfälle testen zu können, muss sichergestellt sein, dass eine valide Konfiguration für das Backup-Dogu hinterlegt ist:

  • etcdctl set /config/backup/backup_type local
  • etcdctl set /config/backup/local_config/path /tmp
  • etcdctl set /config/backup/encryption_key test

Die Integrationstests können auf zwei Arten gestartet werden:

  1. Mit yarn cypress run starten die Tests nur in der Konsole ohne UI-Feedback. Dieser Modus ist nützlich, wenn die Ausführung im Vordergrund steht, zum Beispiel in einer Jenkins-Pipeline.
  2. Mit yarn cypress open wird ein interaktives Fenster gestartet, in dem Sie die Tests ausführen, visuell beobachten und debuggen können. Dieser Modus ist besonders nützlich bei der Entwicklung neuer Tests und der Fehlersuche.

Unhappy Path

Der Schlechtfälle werden durch eine falsche Backup-Konfiguration abgedeckt. Hierzu reicht es einen config Key zu löschen:

  • etcdctl rm /config/backup/backup_type

Die Integrationstests können auf zwei Arten gestartet werden:

  1. Mit yarn cypress run --config '{"specPattern":["cypress/e2e/unhappy_path/*"], "excludeSpecPattern":[]}' starten die Tests nur in der Konsole ohne UI-Feedback. Dieser Modus ist nützlich, wenn die Ausführung im Vordergrund steht, zum Beispiel in einer Jenkins-Pipeline.
  2. Mit yarn cypress open --config '{"specPattern":["cypress/e2e/unhappy_path/*"], "excludeSpecPattern":[]}' wird ein interaktives Fenster gestartet, in dem Sie die Tests ausführen, visuell beobachten und debuggen können. Dieser Modus ist besonders nützlich bei der Entwicklung neuer Tests und der Fehlersuche.

Aktualisierung der Tests aus der Testbibliothek

Von Zeit zu Zeit ist es notwendig, die Testbibliothek @cloudogu/dogu-integration-test-library zu aktualisieren.

Aktualisieren Sie die Testbibliothek mit dem folgenden Aufruf und vergessen Sie nicht, alle Änderungen an den Tests zu übernehmen.

yarn run updateTests