-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplaywright.config.ts
More file actions
86 lines (73 loc) · 2.81 KB
/
playwright.config.ts
File metadata and controls
86 lines (73 loc) · 2.81 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
79
80
81
82
83
84
85
86
import { defineConfig } from '@playwright/test';
import path from 'path';
import { loadEnv, validateRequiredEnvVars } from './UTILS/loadenv';
require('dotenv').config();
export const STORAGE_STATE = path.join(__dirname, 'configs/.auth/user.json');
// Detect the environment (default to 'local' if not provided)
export const environment = process.env.ENV || 'local';
// Load the correct environment variables
loadEnv(environment);
// Validate required environment variables
const requiredVars = ['BASE_URL', 'API_URL', 'USER_NAME', 'PASS_WORD'];
validateRequiredEnvVars(requiredVars);
// Global config using for all tests
export default defineConfig({
// Handle cleanup of allure report
globalSetup: require.resolve('./global-setup'),
globalTeardown: require.resolve('./global-teardown'),
// Adding allure test report
reporter: [
["line"],
[
"allure-playwright",
{
resultsDir: "allure-results",
detail: true,
suiteTitle: true,
environmentInfo: {
ProjectName: process.env.PROJECT_NAME || 'Playwright-Testing',
TenantURL: process.env.BASE_URL,
Account: process.env.USER_NAME,
Environment: environment
},
},
],
],
// Global timeout for tests (can be overridden per test)
timeout: process.env.TEST_TIMEOUT ? parseInt(process.env.TEST_TIMEOUT) : 120000, // 2 minutes default
projects: [
{
name: 'setup_api',
testDir: 'TEST_PROJECT/API/tests',
testMatch: '/setups/auth.helper.ts',
},
{
name: 'api_testing',
testDir: 'TEST_PROJECT/API/tests',
testMatch: '/features/**/*.spec.ts',
dependencies: ['setup_api']
},
{
name: 'setup_e2e',
testDir: 'TEST_PROJECT/E2E/tests',
testMatch: '/setups/login.setup.ts'
},
{
name: 'e2e_testing',
use: {
browserName: 'chromium',
baseURL: process.env.BASE_URL,
headless: process.env.HEADLESS === 'false' ? false : true,
screenshot: 'only-on-failure', // Take screenshot on failure
video: 'retain-on-failure', // Capture video on failure
launchOptions: { args: ["--start-maximized"] }, // start browser with maximize size
viewport: null, // start browser with maximize size
storageState: STORAGE_STATE
},
retries: process.env.E2E_RETRIES ? parseInt(process.env.E2E_RETRIES) : 1,
testDir: 'TEST_PROJECT/E2E/tests',
testMatch: '/features/**/*.spec.ts',
dependencies: ['setup_e2e'],
},
],
});