Files
workspace/code/g3soft-erp/web/playwright.config.ts
T
2026-10-14 17:25:47 +08:00

54 lines
2.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { defineConfig, devices } from '@playwright/test'
const BASE_URL = process.env.E2E_BASE_URL || 'http://127.0.0.1:5090'
/**
* E2E(Playwright)。与 Vitest 的分工:
* vitest → `src/**\/*.{test,spec}.ts`,happy-dom 里的单元测试(见 vitest.config.ts)
* playwright → `e2e/**`,真实浏览器 + 真后端
*
* `testDir` 必须限定为 `./e2e`:Playwright 默认的 testMatch 会顺着包目录把
* `src/**\/*.spec.ts` 也收进来,那样 vitest 的用例会被塞进浏览器跑,报一堆莫名其妙的错。
*
* 前置条件:后端已在 8088 起来(见 CODEBUDDY.md)。前端 dev server 由下面的 webServer
* 负责,已经在跑就复用(不会重复占 5090)。
*/
export default defineConfig({
testDir: './e2e',
fullyParallel: true,
forbidOnly: Boolean(process.env.CI),
retries: process.env.CI ? 1 : 0,
reporter: process.env.CI ? [['list'], ['html', { open: 'never' }]] : [['list']],
// 整轮只在这里登录一次,原因见 e2e/support/session.ts 的「互踢」说明
globalSetup: './e2e/support/global-setup.ts',
// dev server 是按需转译的:某个页面**第一次**被访问时要现编整张依赖图,冷启动实测 5-11s。
// 用默认的 5s expect 超时会表现为「同一个用例时好时坏」,所以统一放宽。
// 后端慢(登录/菜单查询走远程 SQL Server)也吃这个时间。
timeout: 60_000,
expect: { timeout: 15_000 },
use: {
baseURL: BASE_URL,
actionTimeout: 15_000,
navigationTimeout: 30_000,
trace: 'retain-on-failure',
screenshot: 'only-on-failure',
},
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
// 下载 Playwright 自带 Chromium 不便时(慢网 / 离线 / 公司代理),
// 用系统已装的浏览器:E2E_CHANNEL=msedge 或 E2E_CHANNEL=chrome
channel: process.env.E2E_CHANNEL || undefined,
},
},
],
webServer: {
command: 'pnpm dev',
url: BASE_URL,
reuseExistingServer: true,
timeout: 120_000,
},
})