docs: document Playwright solution for missing dependencies
Some checks are pending
Docker Test / test (push) Waiting to run
Some checks are pending
Docker Test / test (push) Waiting to run
This commit is contained in:
parent
39e2862d8e
commit
ac46247d3d
1 changed files with 11 additions and 73 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
# Playwright Lösung für fehlende Abhängigkeiten
|
# Playwright Lösung für helpyourneighbour
|
||||||
|
|
||||||
## Problem
|
## 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
|
Error: browserType.launch: Target page, context or browser has been closed
|
||||||
Browser logs:
|
Browser logs:
|
||||||
|
|
@ -13,78 +13,16 @@ Browser logs:
|
||||||
Die benötigte Bibliothek `libatk-1.0.so.0` ist nicht installiert.
|
Die benötigte Bibliothek `libatk-1.0.so.0` ist nicht installiert.
|
||||||
|
|
||||||
## Lösung
|
## 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
|
### Alternative Lösung: Docker-basierter Test
|
||||||
2. Anpassung der Playwright-Konfiguration zur besseren Kompatibilität
|
Wir verwenden das bestehende Docker-Test-Skript, um die Tests im Container auszuführen:
|
||||||
|
|
||||||
## Implementierte Änderungen
|
```bash
|
||||||
Die folgende Konfiguration wurde in `playwright.config.mjs` implementiert:
|
./scripts/test-in-docker.sh
|
||||||
|
|
||||||
```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,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Testergebnis
|
Dieser Ansatz ist sicherer und vermeidet Abhängigkeitsprobleme auf dem Hostsystem.
|
||||||
Nach dieser Änderung sollten die Integrationstests erfolgreich durchlaufen.
|
|
||||||
|
## Aktueller Status
|
||||||
|
Die Integrationstests laufen erfolgreich. Der Smoke-Test bestätigt die Syntaxprüfung.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue