
Autorisiertes Sicherheitsforschungs-Labor, das CVE-2024-39700 / GHSA-45gq-v5wm-82wg reproduziert (JupyterLab extension-template update-integration-tests pwn request)
Dieser Ordner enthält die Integrationstests der Erweiterung.
Sie werden mit dem Playwright-Testrunner und dem Galata-Helfer definiert.
Die Playwright-Konfiguration ist in playwright.config.js definiert.
Die JupyterLab-Serverkonfiguration für die Integrationstests ist in jupyter_server_test_config.py definiert.
Die Standardkonfiguration erzeugt Videos für fehlgeschlagene Tests und einen HTML-Bericht.
Es gibt einen neuen experimentellen UI-Modus, in den Sie sich vielleicht verlieben werden; siehe dieses Video.
Es wird davon ausgegangen, dass alle Befehle aus dem Stammverzeichnis ausgeführt werden
Um die Tests auszuführen, müssen Sie:
jlpm install
jlpm build:prod
Stellen Sie sicher, dass die Erweiterung in JupyterLab installiert ist.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test
Die Testergebnisse werden im Terminal angezeigt. Falls Tests fehlschlagen, wird der Testbericht am Ende der Testausführung in Ihrem Browser geöffnet; siehe Playwright-Dokumentation zur Konfiguration dieses Verhaltens.
Es wird davon ausgegangen, dass alle Befehle aus dem Stammverzeichnis ausgeführt werden
Wenn Sie Schnappschüsse vergleichen, um Ihre Tests zu validieren, müssen Sie möglicherweise die im Repository gespeicherten Referenzschnappschüsse aktualisieren. Dazu müssen Sie:
jlpm install
jlpm build:prod
Stellen Sie sicher, dass die Erweiterung in JupyterLab installiert ist.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test -u
Es kann zu Abweichungen zwischen den auf Ihrem Computer erzeugten Schnappschüssen und den auf der CI erzeugten kommen. Um das Aktualisieren der Schnappschüsse in einem PR zu erleichtern, können Sie
please update playwright snapshotseingeben, um die Aktualisierung durch einen Bot auf der CI auszulösen. Sobald der Bot neue Schnappschüsse berechnet hat, überträgt er sie in den PR-Zweig.
Es wird davon ausgegangen, dass alle Befehle aus dem Stammverzeichnis ausgeführt werden
Um Tests zu erstellen, ist der einfachste Weg die Verwendung des Code-Generator-Werkzeugs von Playwright:
jlpm install
jlpm build:prod
Stellen Sie sicher, dass die Erweiterung in JupyterLab installiert ist.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm start
cd ./ui-tests
jlpm playwright codegen localhost:8888
Es wird davon ausgegangen, dass alle Befehle aus dem Stammverzeichnis ausgeführt werden
Zum Debuggen von Tests ist das Inspector-Werkzeug von Playwright eine gute Möglichkeit:
jlpm install
jlpm build:prod
Stellen Sie sicher, dass die Erweiterung in JupyterLab installiert ist.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test --debug
Um die Webbrowserversionen zu aktualisieren, müssen Sie das Paket @playwright/test aktualisieren:
cd ./ui-tests
jlpm up "@playwright/test"
jlpm playwright install