52 lines
1.9 KiB
JavaScript
52 lines
1.9 KiB
JavaScript
// playwright.config.js —— T(测试 agent)归属。
|
||||
|
|
// L5 端到端骨架:三档视口(TEST_PLAN §3),与 vitest(vitest.config.js)完全独立。
|
|||
|
|
// 完整用例(按 docs/TEST_CASES.md 的 TC-E2E-*)在后续轮次以 spec 文件补齐到 ../tests/e2e/。
|
|||
|
|
import { defineConfig } from '@playwright/test';
|
|||
|
|
|
|||
|
|
export default defineConfig({
|
|||
|
|
testDir: '../tests/e2e',
|
|||
|
|
testMatch: '**/*.spec.js',
|
|||
|
|
// 2026-08-25 R2 加固(T 建议采纳):真实 QA 流最长 ~92s 且上游串行排队会放大,
|
|||
|
|
// 全局 timeout 提到 480s;各 spec 内对不含真实流的用例仍可用 test.setTimeout 收紧。
|
|||
|
|
timeout: 480_000,
|
|||
|
|
expect: { timeout: 10_000 },
|
|||
|
|
fullyParallel: false, // 三项目串行,避免 dev server 端口与 mock 场景互相干扰
|
|||
|
|
workers: 1,
|
|||
|
|
retries: 0, // 测试轮次纪律:失败即记录,不自动重试掩盖缺陷
|
|||
|
|
reporter: [['list']],
|
|||
|
|
use: {
|
|||
|
|
baseURL: 'http://127.0.0.1:5180',
|
|||
|
|
browserName: 'chromium',
|
|||
|
|
headless: true, // 远端可改 headed;本地保持无头
|
|||
|
|
trace: 'retain-on-failure',
|
|||
|
|
screenshot: 'only-on-failure',
|
|||
|
|
},
|
|||
|
|
projects: [
|
|||
|
|
{
|
|||
|
|
name: 'mobile',
|
|||
|
|
use: {
|
|||
|
|
viewport: { width: 390, height: 844 }, // iPhone 14
|
|||
|
|
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1',
|
|||
|
|
isMobile: true,
|
|||
|
|
hasTouch: true,
|
|||
|
|
deviceScaleFactor: 3,
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: 'tablet',
|
|||
|
|
use: { viewport: { width: 768, height: 1024 } }, // iPad
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: 'desktop',
|
|||
|
|
use: { viewport: { width: 1440, height: 900 } },
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
webServer: {
|
|||
|
|
command: 'npm run dev -- --strictPort',
|
|||
|
|
url: 'http://127.0.0.1:5180',
|
|||
|
|
timeout: 60_000,
|
|||
|
|
reuseExistingServer: !process.env.CI,
|
|||
|
|
// 复用已由 deploy/start-dev.sh 或手动拉起的 dev server(集成/远端场景)
|
|||
|
|
},
|
|||
|
|
});
|