72 lines
2.0 KiB
JavaScript
72 lines
2.0 KiB
JavaScript
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 |