playwright.config.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { defineConfig, devices } from '@playwright/test';
  2. /**
  3. * dashboard-v6 端到端测试配置
  4. * 文档: https://playwright.dev/docs/test-configuration
  5. *
  6. * 前置:dev server 需已启动
  7. * cd ../api-v13 && php artisan serve
  8. * cd ../dashboard-v6 && npm run dev
  9. */
  10. export default defineConfig({
  11. testDir: './src/tests',
  12. /* 本项目是对开发环境的手工测试替代,串行执行更贴近真人操作,日志也更好读 */
  13. fullyParallel: false,
  14. workers: 1,
  15. forbidOnly: !!process.env.CI,
  16. retries: process.env.CI ? 2 : 0,
  17. timeout: 90_000,
  18. expect: { timeout: 15_000 },
  19. reporter: [['list'], ['html', { outputFolder: 'playwright-report', open: 'never' }]],
  20. use: {
  21. baseURL: process.env.E2E_BASE ?? 'http://127.0.0.1:4000/pcd-v2026/',
  22. viewport: { width: 1600, height: 1000 },
  23. trace: 'retain-on-failure',
  24. video: 'retain-on-failure',
  25. actionTimeout: 30_000,
  26. },
  27. projects: [
  28. /* 登录一次,把会话存到 playwright/.auth/user.json */
  29. { name: 'setup', testMatch: /.*\.setup\.ts/ },
  30. {
  31. name: 'chromium',
  32. use: {
  33. ...devices['Desktop Chrome'],
  34. storageState: 'playwright/.auth/user.json',
  35. },
  36. dependencies: ['setup'],
  37. },
  38. ],
  39. });