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
).
- Dazu muss das Feld
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.
- 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
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:
- 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. - 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:
- 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. - 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