const { chromium } = require('@playwright/test') async function globalSetup(config) { console.log('🚀 开始全局设置...') // 获取浏览器实例 const browser = await chromium.launch() const context = await browser.newContext() const page = await context.newPage() try { // 设置测试数据 await setupTestData(page) // 设置用户认证 await setupAuthentication(page) // 设置测试环境变量 await setupEnvironmentVariables() console.log('✅ 全局设置完成') } catch (error) { console.error('❌ 全局设置失败:', error) throw error } finally { await context.close() await browser.close() } } async function setupTestData(page) { console.log('📊 设置测试数据...') // 这里可以设置测试数据,例如: // 1. 创建测试用户 // 2. 准备测试产品数据 // 3. 设置测试类别等 // 示例:通过API设置测试数据 // await page.goto('/api/test/setup') // await page.waitForResponse(response => response.status() === 200) } async function setupAuthentication(page) { console.log('🔐 设置用户认证...') // 这里可以设置测试用户认证,例如: // 1. 创建测试用户 // 2. 登录测试用户 // 3. 保存认证令牌 // 示例:通过API登录 // await page.goto('/api/auth/login') // await page.fill('[data-testid="username"]', 'testuser') // await page.fill('[data-testid="password"]', 'testpassword') // await page.click('[data-testid="login-button"]') // await page.waitForResponse(response => response.status() === 200) // 保存认证状态 // await context.storageState({ path: 'test-auth-state.json' }) } async function setupEnvironmentVariables() { console.log('🌍 设置环境变量...') // 设置测试环境变量 process.env.TEST_MODE = 'true' process.env.API_BASE_URL = 'http://localhost:7001/api' process.env.TEST_TIMEOUT = '30000' } module.exports = globalSetup