playwright.config.ts
Rama main · réplica de lectura del repositorio original.
import { defineConfig } from '@playwright/test';
import 'dotenv/config';
if (!process.env.QA_STUDIO_API_KEY) {
throw new Error('QA_STUDIO_API_KEY is not set');
}
if (!process.env.QA_STUDIO_PROJECT_ID) {
throw new Error('QA_STUDIO_PROJECT_ID is not set');
}
// Helper to strip ANSI codes from strings (color codes, etc.)
function stripAnsi(str: string): string {
return str.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '').replace(/\[\d+m/g, '');
}
const baseURL = stripAnsi(process.env.BASE_URL || process.env.PUBLIC_BASE_URL || '');
if (!baseURL) {
throw new Error('BASE_URL or PUBLIC_BASE_URL must be set for Playwright E2E tests');
}
export default defineConfig({
reporter: [
['list'],
[
'@qastudio-dev/playwright',
{
apiUrl: stripAnsi(`${baseURL.replace(/\/$/, '')}/api`),
apiKey: stripAnsi(process.env.QA_STUDIO_API_KEY),
projectId: stripAnsi(process.env.QA_STUDIO_PROJECT_ID),
environment: process.env.CI ? 'CI' : 'local',
createTestRun: true
}
]
],
use: {
baseURL,
// Capture screenshots on failure
screenshot: 'only-on-failure',
// Capture videos on failure
video: 'retain-on-failure',
// Enable tracing on failure
trace: 'retain-on-failure'
},
// Uncomment this if you want Playwright to automatically start the dev server
// webServer: {
// command: 'npm run dev',
// port: 5173,
// reuseExistingServer: true // Don't fail if server is already running
// },
testDir: 'e2e/tests',
workers: 4
});