Ctrl K
ComunidadGuías…

playwright.config.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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
});