playwright.config.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import { defineConfig, devices } from "@playwright/test";
  2. const localBrowser = process.env.PLAYWRIGHT_USE_SYSTEM_CHROME === "1" ? { channel: "chrome" as const } : {};
  3. export default defineConfig({
  4. testDir: "./tests/e2e",
  5. outputDir: "../test-artifacts/playwright-results",
  6. reporter: [["list"], ["html", { outputFolder: "../test-artifacts/playwright-report", open: "never" }]],
  7. use: {
  8. baseURL: "http://127.0.0.1:3008",
  9. trace: "retain-on-failure",
  10. screenshot: "only-on-failure"
  11. },
  12. projects: [
  13. { name: "desktop-chromium", use: { ...devices["Desktop Chrome"], ...localBrowser } },
  14. { name: "tablet-chromium", use: { ...devices["Desktop Chrome"], ...localBrowser, viewport: { width: 1024, height: 900 } } },
  15. { name: "mobile-chromium", use: { ...devices["Pixel 7"], ...localBrowser } }
  16. ],
  17. webServer: [
  18. {
  19. command: "../backend/.venv/bin/uvicorn app.main:app --app-dir ../backend --host 127.0.0.1 --port 8788",
  20. url: "http://127.0.0.1:8788/api/health",
  21. reuseExistingServer: true,
  22. timeout: 30_000
  23. },
  24. {
  25. command: "npm start",
  26. url: "http://127.0.0.1:3008",
  27. reuseExistingServer: true,
  28. timeout: 60_000
  29. }
  30. ]
  31. });