From 232f48126eaca9581d3b25768149746f1a9a5f48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Sun, 29 Mar 2026 09:54:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E7=9A=84E2E=E6=B5=8B=E8=AF=95=E5=88=86=E5=B1=82=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题根本原因: - e2e/playwright.config.tiered.ts 文件不存在 - CI Pipeline的e2e-standard步骤引用了该配置文件 - 导致E2E测试无法执行 修复方案: - 创建 playwright.config.tiered.ts 配置文件 - 支持三个测试层级: fast/standard/deep - 根据TEST_TIER环境变量动态调整配置 - fast: 15s超时, 0重试, 2并发 - standard: 30s超时, 1重试, 1并发 - deep: 60s超时, 2重试, 1并发 验证: - 配置文件语法正确 - 支持环境变量配置 Ralph Loop #2 完成 --- e2e/playwright.config.tiered.ts | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 e2e/playwright.config.tiered.ts diff --git a/e2e/playwright.config.tiered.ts b/e2e/playwright.config.tiered.ts new file mode 100644 index 0000000..33b8764 --- /dev/null +++ b/e2e/playwright.config.tiered.ts @@ -0,0 +1,52 @@ +import { defineConfig, devices } from '@playwright/test'; + +const testTier = process.env.TEST_TIER || 'standard'; + +const tierConfig = { + fast: { + timeout: 15000, + retries: 0, + workers: 2, + }, + standard: { + timeout: 30000, + retries: 1, + workers: 1, + }, + deep: { + timeout: 60000, + retries: 2, + workers: 1, + }, +}; + +const config = tierConfig[testTier] || tierConfig.standard; + +export default defineConfig({ + testDir: './', + fullyParallel: false, + forbidOnly: !!process.env.CI, + retries: config.retries, + workers: config.workers, + timeout: config.timeout, + reporter: [ + ['html', { outputFolder: 'reports/html', open: 'never' }], + ['json', { outputFile: 'reports/results.json' }], + ['list'] + ], + use: { + baseURL: process.env.BASE_URL || 'https://novalon.cn', + trace: 'on-first-retry', + screenshot: 'only-on-failure', + video: 'retain-on-failure', + launchOptions: { + args: ['--disable-dev-shm-usage', '--no-sandbox'] + } + }, + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + ], +});