Files
novalon-website/e2e/global-setup.ts
T
张翔 027ee2137e feat(e2e): 优化测试配置并增强富文本编辑器测试
refactor(cases): 更新案例数据结构字段
test(admin): 增加富文本编辑器多种格式测试
fix(contact-form): 修复表单提交测试并移除skip标记
perf(smart-wait): 改进页面就绪等待逻辑
ci(playwright): 调整firefox配置并优化全局setup
2026-03-26 18:06:34 +08:00

51 lines
1.5 KiB
TypeScript

import { chromium, firefox, webkit, FullConfig } from '@playwright/test';
import { getEnvironment } from './src/config/environments';
const env = getEnvironment();
async function globalSetup(config: FullConfig) {
const browserName = config.projects?.[0]?.use?.browserName || 'chromium';
let browser;
try {
switch (browserName) {
case 'firefox':
browser = await firefox.launch();
break;
case 'webkit':
browser = await webkit.launch();
break;
default:
browser = await chromium.launch();
}
const page = await browser.newPage();
try {
await page.goto(`${env.baseURL}/admin/login`, { waitUntil: 'commit', timeout: 120000 });
await page.waitForSelector('#email', { timeout: 30000 });
await page.locator('#email').fill('admin@novalon.cn');
await page.locator('#password').fill('admin123456');
await page.locator('button[type="submit"]').click();
try {
await page.waitForURL(/\/admin(?!\/login)/, { timeout: 30000 });
await page.context().storageState({ path: '.auth/admin.json' });
} catch {
console.warn('登录失败,跳过需要认证的测试');
}
} catch {
console.warn('Admin登录页面不可用,跳过需要认证的测试');
} finally {
await browser.close();
}
} catch (error) {
console.warn(`浏览器启动失败 (${browserName}),跳过需要认证的测试:`, error.message);
}
}
export default globalSetup;