playwright.config.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { defineConfig, devices } from "@playwright/test";
  2. import NextEnv from "@next/env";
  3. NextEnv.loadEnvConfig(".");
  4. const PORT = process.env.PORT || 3000;
  5. const baseURL = process.env.BASE_URL || `http://localhost:${PORT}`;
  6. export default defineConfig({
  7. testDir: "./__tests__",
  8. fullyParallel: true,
  9. workers: process.env.CI ? 3 : undefined,
  10. forbidOnly: !!process.env.CI,
  11. retries: 0,
  12. reporter: process.env.CI ? [["html"], ["github"], ["list"]] : [["html"], ["list"]],
  13. use: {
  14. baseURL,
  15. trace: "on-first-retry",
  16. screenshot: process.env.CI ? "only-on-failure" : "off",
  17. video: process.env.CI ? "retain-on-failure" : "off",
  18. },
  19. projects: [
  20. {
  21. name: "Desktop Chrome",
  22. use: { ...devices["Desktop Chrome"] },
  23. },
  24. // {
  25. // name: "Desktop Safari",
  26. // use: { ...devices["Desktop Safari"] },
  27. // },
  28. // {
  29. // name: "Mobile Chrome",
  30. // use: {
  31. // ...devices["Pixel 5"],
  32. // },
  33. // },
  34. // {
  35. // name: "Mobile Safari",
  36. // use: devices["iPhone 12 Mini"],
  37. // },
  38. ],
  39. timeout: 60 * 1000,
  40. webServer: process.env.BASE_URL
  41. ? undefined
  42. : {
  43. command: "pnpm run start",
  44. url: baseURL,
  45. reuseExistingServer: !process.env.CI,
  46. },
  47. });