-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathplaywright.config.ts
52 lines (50 loc) · 1.55 KB
/
playwright.config.ts
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
import { defineConfig, devices } from '@playwright/test';
const isDev = process.env.NODE_ENV !== 'production';
/**
* The server port for local development or CI
*/
export const PORT = isDev ? 3030 : 9000;
/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
testDir: './playwright/tests',
// Don't run tests _within_ files in parallel as this causes flakiness locally - investigating
// Test files still run in parallel as per the number of workers set below
fullyParallel: false,
// Fail the build on CI if you accidentally left test.only in the source code
forbidOnly: !!process.env.CI,
// Retry on CI only
retries: process.env.CI ? 3 : 1,
// Workers run tests files in parallel
workers: process.env.CI ? 4 : undefined,
// Reporter to use. See https://playwright.dev/docs/test-reporters
reporter: [['line'], ['html', { open: 'never' }]],
// Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions
use: {
// Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer
trace: 'on-first-retry',
screenshot: 'only-on-failure',
video: {
mode: 'retain-on-failure',
},
},
// Configure projects for major browsers
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
],
webServer: {
// On CI the server is already started so a no-op
command: isDev ? 'make dev' : ':',
url: `http://localhost:${PORT}`,
reuseExistingServer: true,
stdout: 'pipe',
stderr: 'pipe',
env: {
PLAYWRIGHT: 'true',
},
},
});