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'] }, + }, + ], +});