Files
it/frontend/tests/e2e/global-setup.js

72 lines
2.0 KiB
JavaScript
Raw Permalink Normal View History

2025-11-03 19:47:36 +08:00
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