You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
4.3 KiB
89 lines
4.3 KiB
/**
|
|
* 完整 E2E 测试执行入口
|
|
* 运行方式: 在 Claude 中输入 "执行完整 E2E 测试"
|
|
*/
|
|
|
|
import { userE2ETests } from './users.e2e.test';
|
|
import { dashboardE2ETests } from './dashboard.e2e.test';
|
|
|
|
export async function runFullE2ETests() {
|
|
console.log('╔═══════════════════════════════════════════════════════════╗');
|
|
console.log('║ 完整 E2E 测试套件 ║');
|
|
console.log('╚═══════════════════════════════════════════════════════════╝');
|
|
console.log('');
|
|
|
|
const startTime = Date.now();
|
|
let totalPassed = 0;
|
|
let totalFailed = 0;
|
|
|
|
// 测试套件 1: 仪表盘测试
|
|
console.log('\n┌─────────────────────────────────────────────────────────┐');
|
|
console.log('│ 📊 测试套件 1: 仪表盘数据验证 │');
|
|
console.log('└─────────────────────────────────────────────────────────┘');
|
|
console.log('');
|
|
console.log('测试流程:');
|
|
console.log(' 1. 登录系统');
|
|
console.log(' 2. 验证仪表盘统计数据');
|
|
console.log(' 3. 验证最近活动列表');
|
|
console.log(' 4. 验证快捷操作');
|
|
console.log('');
|
|
|
|
let dashboardPassed = 0;
|
|
try {
|
|
await dashboardE2ETests.runFullTest();
|
|
dashboardPassed = 4;
|
|
totalPassed += 4;
|
|
} catch (error) {
|
|
totalFailed += 1;
|
|
console.error('\n❌ 仪表盘测试失败:', error);
|
|
}
|
|
|
|
// 测试套件 2: 用户管理 CRUD 测试
|
|
console.log('\n┌─────────────────────────────────────────────────────────┐');
|
|
console.log('│ 👥 测试套件 2: 用户管理 CRUD │');
|
|
console.log('└─────────────────────────────────────────────────────────┘');
|
|
console.log('');
|
|
console.log('测试流程:');
|
|
console.log(' 1. 登录系统');
|
|
console.log(' 2. 导航到用户管理');
|
|
console.log(' 3. 创建新用户');
|
|
console.log(' 4. 验证用户创建');
|
|
console.log(' 5. 编辑用户信息');
|
|
console.log(' 6. 验证用户更新');
|
|
console.log(' 7. 删除用户(含确认弹窗)');
|
|
console.log(' 8. 验证用户删除');
|
|
console.log('');
|
|
|
|
let userPassed = 0;
|
|
try {
|
|
await userE2ETests.runFullCRUDTest();
|
|
userPassed = 8;
|
|
totalPassed += 8;
|
|
} catch (error) {
|
|
totalFailed += 1;
|
|
console.error('\n❌ 用户管理测试失败:', error);
|
|
}
|
|
|
|
const duration = Date.now() - startTime;
|
|
|
|
console.log('\n═══════════════════════════════════════════════════════════');
|
|
console.log('📊 完整测试报告');
|
|
console.log('═══════════════════════════════════════════════════════════');
|
|
console.log(` 仪表盘测试: ${dashboardPassed}/4 ✅`);
|
|
console.log(` 用户管理测试: ${userPassed}/8 ✅`);
|
|
console.log(` ─────────────────────────────────────────`);
|
|
console.log(` 总计步骤: ${totalPassed + totalFailed}`);
|
|
console.log(` ✅ 通过: ${totalPassed}`);
|
|
console.log(` ❌ 失败: ${totalFailed}`);
|
|
console.log(` ⏱️ 耗时: ${(duration / 1000).toFixed(2)} 秒`);
|
|
console.log('═══════════════════════════════════════════════════════════');
|
|
|
|
return { passed: totalPassed, failed: totalFailed, duration };
|
|
}
|
|
|
|
// 如果直接运行此文件
|
|
if (require.main === module) {
|
|
runFullE2ETests();
|
|
}
|
|
|
|
export default runFullE2ETests;
|
|
|