-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathplaywright.config.ts
More file actions
61 lines (57 loc) · 2.6 KB
/
playwright.config.ts
File metadata and controls
61 lines (57 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import { defineConfig, devices } from '@playwright/test'
const isCI = process.env.CI === 'true'
export default defineConfig({
// globalSetup: './tests/e2e/global-setup.ts', // Временно отключено для отладки
testDir: './tests/e2e',
fullyParallel: true, // ✅ Включаем параллельность для скорости
forbidOnly: isCI,
retries: 0, // ❌ Убираем retries чтобы видеть реальные проблемы
workers: isCI ? 2 : 2, // ⚡ Меньше воркеров для стабильности
reporter: isCI ? [['github'], ['json', { outputFile: './test-results/results.json' }]] : 'html',
outputDir: './test-results',
timeout: 30000, // ⏱️ Стандартный таймаут без маскировки проблем
// В CI используем более надежные настройки
use: {
baseURL: process.env.E2E_BASE_URL || 'https://localhost:3000',
// Для работы с прокси на /graphql
headless: !!isCI,
ignoreHTTPSErrors: true,
// Игнорируем CORS ошибки в тестах
extraHTTPHeaders: {
Accept: 'application/json, text/plain, */*',
'Accept-Language': 'ru-RU,ru;q=0.9,en;q=0.8'
},
trace: isCI ? 'retain-on-failure' : 'off',
screenshot: isCI ? 'only-on-failure' : 'off',
video: isCI ? 'retain-on-failure' : 'off',
actionTimeout: 15000, // ⚡ Стандартные таймауты для выявления проблем
navigationTimeout: 20000, // ⚡ Быстрое выявление медленной навигации
// В CI добавляем дополнительные аргументы для стабильности
...(isCI && {
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage']
})
},
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
// В CI используем системный браузер если доступен
...(isCI &&
process.env.PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD && {
channel: 'chromium'
})
}
}
],
// Запускаем отдельный тестовый сервер на порту 3000 (для CORS)
webServer: {
command: 'E2E=true PORT=3000 npm run dev',
// command: 'npm run build && npx vinxi preview --port 3000',
port: 3000,
reuseExistingServer: !process.env.CI,
timeout: isCI ? 120000 : 180000, // ⏱️ Увеличиваем таймаут для билда в CI
stdout: 'pipe',
stderr: 'pipe'
}
})