-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplaywright.config.ts
More file actions
78 lines (70 loc) · 1.75 KB
/
playwright.config.ts
File metadata and controls
78 lines (70 loc) · 1.75 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import { defineConfig, devices } from '@playwright/test';
import * as dotenv from 'dotenv';
dotenv.config({ quiet: true });
const isCI = process.env.CI === 'true';
const toNumber = (value: string | undefined, fallback: number) => {
const parsedValue = Number(value);
return Number.isFinite(parsedValue) ? parsedValue : fallback;
};
const testDir = './tests';
const fullyParallel = true;
const retries = isCI ? toNumber(process.env.RETRIES, 0) : 0;
const workers = isCI ? toNumber(process.env.WORKERS, 1) : 1;
const repeatEach = isCI ? toNumber(process.env.REPEAT_EACH, 1) : 1;
const playwrightTimeoutMs = toNumber(process.env.PLAYWRIGHT_TIMEOUT_MS, 15000);
const testTimeoutMs = toNumber(
process.env.PLAYWRIGHT_TEST_TIMEOUT_MS,
playwrightTimeoutMs * 3,
);
const navigationTimeoutMs = playwrightTimeoutMs;
const reporter = 'html';
const baseURL = process.env.BASE_URL;
const trace = 'on-first-retry';
const projects = [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
];
console.info('[playwright.config] Current configuration');
console.info({
ci: isCI,
testDir,
fullyParallel,
forbidOnly: isCI,
retries,
workers,
repeatEach,
playwrightTimeoutMs,
testTimeoutMs,
navigationTimeoutMs,
reporter,
baseURL,
trace,
projects: projects.map(({ name }) => name),
});
export default defineConfig({
timeout: testTimeoutMs,
testDir,
fullyParallel,
forbidOnly: isCI,
retries,
workers,
repeatEach,
reporter,
expect: {
timeout: playwrightTimeoutMs,
},
use: {
baseURL,
navigationTimeout: navigationTimeoutMs,
trace,
ignoreHTTPSErrors: true,
},
projects,
// webServer: {
// command: 'npm run start',
// url: 'http://localhost:3000',
// reuseExistingServer: !isCI,
// },
});