UNPKG

tm-playwright-framework

Version:

Playwright Cucumber TS framework - The easiest way to learn

43 lines (39 loc) 1.83 kB
import { defineConfig } from '@playwright/test'; import * as dotenv from 'dotenv'; import * as dotenvExpand from 'dotenv-expand'; import path from 'path'; // Load ENV first process.env.ENV = process.env.ENV || 'stage'; const envFile = path.resolve(process.cwd(), `./app/env/.env.${process.env.ENV}`); const env = dotenv.config({ path: envFile }); dotenvExpand.expand(env); export default defineConfig({ testDir: `${process.env.TEST_DIR || './app/test/playwright/'}`, // Directory where tests are located testMatch: '**/*.test.ts', reporter: [ ['html', { outputFolder: `${process.env.REPORT_PATH || 'playwright-test-results'}/report-html/` }], // Custom path for HTML reports ['json', { outputFile: `${process.env.REPORT_PATH || 'playwright-test-results'}/report.json/` }] // Custom path for JSON reports ], use: { headless: true, // Run tests headlessly (set to false for debugging) viewport: { width: 1280, height: 720 }, baseURL: process.env.API_BASEURL, // Additional global settings can be added here }, projects: [ { name: process.env.BROWSER || 'chromium', // Use the browser name from the environment variable or default to 'chromium' use: { browserName: ['chromium', 'firefox', 'webkit'].includes(process.env.BROWSER || '') ? (process.env.BROWSER as 'chromium' | 'firefox' | 'webkit') : 'chromium' } } ], metadata: { ENV: `${process.env.ENV || 'PROD'}` }, workers: Number(process.env.PARALLEL_WORKER) || 3, timeout: Number(process.env.TIME_OUT) || 80000, // Timeout for each test retries: Number(process.env.RETRY_COUNT) || 0, // Retry failed tests, });