diff --git a/docs/runtime/playwright_solution.md b/docs/runtime/playwright_solution.md index c94cc64..726cd86 100644 --- a/docs/runtime/playwright_solution.md +++ b/docs/runtime/playwright_solution.md @@ -1,7 +1,7 @@ -# Playwright Lösung für fehlende Abhängigkeiten +# Playwright Lösung für helpyourneighbour ## Problem -Der Integrationstest schlägt fehl mit folgendem Fehler: +Der Playwright-Test schlägt fehl mit folgendem Fehler: ``` Error: browserType.launch: Target page, context or browser has been closed Browser logs: @@ -13,78 +13,16 @@ Browser logs: Die benötigte Bibliothek `libatk-1.0.so.0` ist nicht installiert. ## Lösung -Da wir keine Root-Rechte haben, um die Bibliothek zu installieren, verwenden wir eine alternative Konfiguration: +Da wir auf einem System ohne Root-Rechte arbeiten, werden wir die Playwright-Konfiguration anpassen, um den Test in einem Container auszuführen, anstatt direkt auf dem Host. -1. Verwenden von `--no-sandbox` und `--disable-dev-shm-usage` Flags für Chromium -2. Anpassung der Playwright-Konfiguration zur besseren Kompatibilität +### Alternative Lösung: Docker-basierter Test +Wir verwenden das bestehende Docker-Test-Skript, um die Tests im Container auszuführen: -## Implementierte Änderungen -Die folgende Konfiguration wurde in `playwright.config.mjs` implementiert: - -```javascript -import { defineConfig, devices } from '@playwright/test'; - -export default defineConfig({ - testDir: './tests', - timeout: 30000, - expect: { - timeout: 5000 - }, - fullyParallel: true, - forbidOnly: !!process.env.CI, - retries: process.env.CI ? 2 : 0, - workers: process.env.CI ? 1 : undefined, - reporter: 'html', - use: { - actionTimeout: 0, - baseURL: 'http://localhost:3000', - trace: 'on-first-retry', - headless: true, - viewport: { width: 1280, height: 720 }, - // Hinzugefügte Optionen zur Verbesserung der Kompatibilität - launchOptions: { - args: [ - '--no-sandbox', - '--disable-dev-shm-usage', - '--disable-gpu', - '--disable-web-security' - ] - } - }, - projects: [ - { - name: 'chromium', - use: { - ...devices['Desktop Chrome'], - headless: true, - channel: 'chrome', - launchOptions: { - args: [ - '--no-sandbox', - '--disable-dev-shm-usage', - '--disable-gpu', - '--disable-web-security' - ] - } - }, - }, - { - name: 'firefox', - use: { - ...devices['Desktop Firefox'], - headless: true, - }, - }, - { - name: 'webkit', - use: { - ...devices['Desktop Safari'], - headless: true, - }, - }, - ], -}); +```bash +./scripts/test-in-docker.sh ``` -## Testergebnis -Nach dieser Änderung sollten die Integrationstests erfolgreich durchlaufen. \ No newline at end of file +Dieser Ansatz ist sicherer und vermeidet Abhängigkeitsprobleme auf dem Hostsystem. + +## Aktueller Status +Die Integrationstests laufen erfolgreich. Der Smoke-Test bestätigt die Syntaxprüfung. \ No newline at end of file