playwright.config.ts 1.26 KB
import { defineConfig, devices } from "@playwright/test";

/**
 * Playwright E2E 测试配置
 *
 * 运行方式(需要先启动 dev server):
 *   npm run dev &
 *   npm run test:e2e
 *
 * 或使用 webServer 自动启动(见下方 webServer 配置)。
 */
export default defineConfig({
  testDir: "./e2e/tests",
  /* 单个测试的超时 */
  timeout: 30000,
  /* 失败时最多重试 1 次(CI 场景) */
  retries: process.env.CI ? 1 : 0,
  /* 并行运行 */
  workers: process.env.CI ? 1 : undefined,
  /* 报告格式 */
  reporter: [["html", { outputFolder: "playwright-report", open: "never" }], ["line"]],
  use: {
    /* 基础 URL:dev server 地址 */
    baseURL: process.env.E2E_BASE_URL || "http://localhost:5173",
    /* 失败时截图 */
    screenshot: "only-on-failure",
    /* 失败时录制视频 */
    video: "retain-on-failure",
    /* 追踪(用于调试) */
    trace: "retain-on-failure",
  },
  projects: [
    {
      name: "chromium",
      use: { ...devices["Desktop Chrome"] },
    },
  ],
  /* 测试时自动启动开发服务器(如需使用,取消注释) */
  // webServer: {
  //   command: "npm run dev",
  //   url: "http://localhost:5173",
  //   reuseExistingServer: !process.env.CI,
  //   timeout: 120000,
  // },
});