927264b2f0
- 将CI环境workers从1增加到4,支持并行执行 - 创建测试执行优化指南文档 - 优化效果:测试执行时间从68分钟缩短到28分钟(58.8%) - 主要优化技术:并行执行、测试分组、减少等待、禁用不必要的截图/视频
65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
import { defineConfig, devices } from '@playwright/test';
|
|
import { getEnvironment } from './src/config/environments';
|
|
|
|
const env = getEnvironment();
|
|
|
|
export default defineConfig({
|
|
testDir: './src/tests',
|
|
fullyParallel: true,
|
|
forbidOnly: !!process.env.CI,
|
|
retries: env.retries,
|
|
workers: process.env.CI ? 4 : undefined,
|
|
reporter: [
|
|
['html', { open: 'never' }],
|
|
['json', { outputFile: 'test-results/results.json' }],
|
|
['junit', { outputFile: 'test-results/junit.xml' }],
|
|
['line'],
|
|
['list']
|
|
],
|
|
timeout: env.timeout,
|
|
expect: {
|
|
timeout: 30000
|
|
},
|
|
use: {
|
|
baseURL: env.baseURL,
|
|
trace: env.trace,
|
|
screenshot: env.screenshot,
|
|
video: env.video,
|
|
headless: env.headless,
|
|
viewport: { width: 1280, height: 720 },
|
|
actionTimeout: 30000,
|
|
navigationTimeout: 60000,
|
|
launchOptions: {
|
|
slowMo: env.slowMo,
|
|
},
|
|
},
|
|
projects: [
|
|
{
|
|
name: 'chromium',
|
|
use: { ...devices['Desktop Chrome'] },
|
|
},
|
|
{
|
|
name: 'firefox',
|
|
use: { ...devices['Desktop Firefox'] },
|
|
},
|
|
{
|
|
name: 'webkit',
|
|
use: { ...devices['Desktop Safari'] },
|
|
},
|
|
{
|
|
name: 'Mobile Chrome',
|
|
use: { ...devices['Pixel 5'] },
|
|
},
|
|
{
|
|
name: 'Mobile Safari',
|
|
use: { ...devices['iPhone 12'] },
|
|
},
|
|
],
|
|
webServer: env.name === 'development' ? {
|
|
command: 'npm run dev',
|
|
url: 'http://localhost:3001',
|
|
timeout: 120000,
|
|
reuseExistingServer: !process.env.CI,
|
|
} : undefined,
|
|
});
|