feat(e2e): 优化测试配置并增强富文本编辑器测试
refactor(cases): 更新案例数据结构字段 test(admin): 增加富文本编辑器多种格式测试 fix(contact-form): 修复表单提交测试并移除skip标记 perf(smart-wait): 改进页面就绪等待逻辑 ci(playwright): 调整firefox配置并优化全局setup
This commit is contained in:
+37
-20
@@ -1,32 +1,49 @@
|
||||
import { chromium, FullConfig } from '@playwright/test';
|
||||
import { chromium, firefox, webkit, FullConfig } from '@playwright/test';
|
||||
import { getEnvironment } from './src/config/environments';
|
||||
|
||||
const env = getEnvironment();
|
||||
|
||||
async function globalSetup(_config: FullConfig) {
|
||||
const browser = await chromium.launch();
|
||||
const page = await browser.newPage();
|
||||
|
||||
async function globalSetup(config: FullConfig) {
|
||||
const browserName = config.projects?.[0]?.use?.browserName || 'chromium';
|
||||
let browser;
|
||||
|
||||
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();
|
||||
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.waitForURL(/\/admin(?!\/login)/, { timeout: 30000 });
|
||||
await page.context().storageState({ path: '.auth/admin.json' });
|
||||
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('登录失败,跳过需要认证的测试');
|
||||
console.warn('Admin登录页面不可用,跳过需要认证的测试');
|
||||
} finally {
|
||||
await browser.close();
|
||||
}
|
||||
} catch {
|
||||
console.warn('Admin登录页面不可用,跳过需要认证的测试');
|
||||
} finally {
|
||||
await browser.close();
|
||||
} catch (error) {
|
||||
console.warn(`浏览器启动失败 (${browserName}),跳过需要认证的测试:`, error.message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user