|
1 | 1 | import { defineConfig, devices } from '@playwright/test' |
2 | 2 |
|
| 3 | +const reporters: Array<[string, Record<string, unknown>]> = [ |
| 4 | + ['list', {printSteps: true}], |
| 5 | +] |
| 6 | + |
| 7 | +if (process.env.CI) { |
| 8 | + reporters.push(['html', {outputFolder: 'playwright-report', open: 'never'}]) |
| 9 | +} |
| 10 | + |
3 | 11 | export default defineConfig({ |
4 | 12 | testDir: './src/tests', |
5 | 13 | fullyParallel: false, |
6 | 14 | forbidOnly: !!process.env.CI, |
7 | 15 | retries: process.env.CI ? 0 : 0, // Experimental settings, update it if necessary for the CI |
8 | 16 | workers: process.env.CI ? 1 : 1, // We put 1 worker even for dev mode to save computer resources |
9 | | - reporter: [['list', {printSteps: true}]], |
| 17 | + reporter: reporters, |
10 | 18 | timeout: process.env.CI ? 180000 : 120000, // 3min in CI per test, 2min in local |
11 | 19 | use: { |
12 | 20 | baseURL: process.env.SERVER_BASE_URL || 'https://gally.local', |
13 | | - trace: 'on', |
| 21 | + // In CI trace is kept only on failure to avoid huge artifacts |
| 22 | + trace: process.env.CI ? 'retain-on-failure' : 'on', |
14 | 23 | headless: true, |
15 | 24 | ignoreHTTPSErrors: true, |
16 | 25 | permissions: ['clipboard-read', 'clipboard-write'], |
| 26 | + // Capture screenshot and video on test failure in CI env for easier debugging. |
| 27 | + screenshot: process.env.CI ? 'only-on-failure' : 'off', |
| 28 | + // Record videos at lower size than the viewport to save space |
| 29 | + video: process.env.CI |
| 30 | + ? { mode: 'retain-on-failure', size: { width: 960, height: 540 } } |
| 31 | + : 'off', |
17 | 32 | }, |
18 | 33 | expect: { |
19 | 34 | timeout: process.env.CI ? 30000 : 20000, // 30s in CI per expect, 20s in local, |
20 | 35 | }, |
21 | 36 | projects: [ |
22 | 37 | { |
23 | 38 | name: 'chromium', |
24 | | - use: {...devices['Desktop Chrome']}, |
| 39 | + use: { |
| 40 | + ...devices['Desktop Chrome'], |
| 41 | + // Increase viewport resolution for easier visual debugging |
| 42 | + viewport: { width: 1920, height: 1080 }, |
| 43 | + }, |
25 | 44 | }, |
26 | 45 | ], |
27 | 46 | }) |
0 commit comments