chore: remove tdd_test_transport.js

This commit is contained in:
2026-04-29 02:09:02 +08:00
parent a0e08a313d
commit ffef757fad
-273
View File
@@ -1,273 +0,0 @@
// 完整TDD测试流程 - 添加5元交通支出验证
const { chromium } = require('playwright');
async function runTDDTest() {
console.log('='.repeat(60));
console.log('TDD测试: 添加5元交通支出验证');
console.log('='.repeat(60));
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext({
viewport: { width: 1920, height: 1080 }
});
const page = await context.newPage();
const baseUrl = 'http://localhost:5173';
const testResults = {
passed: [],
failed: [],
screenshots: []
};
try {
// ========== 步骤1: 打开记账页面 ==========
console.log('\n[步骤1] 打开记账页面 http://localhost:5173/record');
await page.goto(`${baseUrl}/record`, { waitUntil: 'networkidle', timeout: 30000 });
await page.waitForTimeout(2000);
const recordPageTitle = await page.$('.page-title');
console.log(` - 页面标题: ${recordPageTitle ? '✅' : '❌'}`);
// 截图记录页面(添加前)
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/01_record_page_before.png', fullPage: true });
console.log(' - 截图: 01_record_page_before.png');
testResults.screenshots.push('01_record_page_before.png');
// ========== 步骤2: 点击"新增账单"按钮 ==========
console.log('\n[步骤2] 点击"新增账单"按钮');
const addBtn = await page.$('#addBtn');
if (addBtn) {
await addBtn.click();
console.log(' - 新增按钮: ✅ 点击成功');
await page.waitForTimeout(500);
} else {
throw new Error('未找到新增按钮 #addBtn');
}
// 截图弹窗
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/02_modal_opened.png', fullPage: true });
console.log(' - 截图: 02_modal_opened.png');
testResults.screenshots.push('02_modal_opened.png');
// ========== 步骤3: 填写表单 ==========
console.log('\n[步骤3] 填写表单');
console.log(' - 类型: 支出(默认)');
// 输入金额
const amountInput = await page.$('#amount');
if (amountInput) {
await amountInput.fill('5');
console.log(' - 金额: ✅ 输入 5');
} else {
throw new Error('未找到金额输入框 #amount');
}
// 选择"交通"分类
const trafficCategory = await page.$('[data-category="交通"]');
if (trafficCategory) {
await trafficCategory.click();
console.log(' - 分类: ✅ 选择"交通"');
} else {
throw new Error('未找到交通分类按钮 [data-category="交通"]');
}
// 填写备注
const noteInput = await page.$('#note');
if (noteInput) {
await noteInput.fill('地铁测试');
console.log(' - 备注: ✅ 输入"地铁测试"');
} else {
throw new Error('未找到备注输入框 #note');
}
// 截图表单填写完成
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/03_form_filled.png', fullPage: true });
console.log(' - 截图: 03_form_filled.png');
testResults.screenshots.push('03_form_filled.png');
// ========== 步骤4: 点击"保存记录" ==========
console.log('\n[步骤4] 点击"保存记录"');
const submitBtn = await page.$('button[type="submit"]');
if (submitBtn) {
await submitBtn.click();
console.log(' - 保存按钮: ✅ 点击成功');
} else {
throw new Error('未找到保存按钮 button[type="submit"]');
}
// 等待保存成功toast
await page.waitForTimeout(3000);
// 截图保存后
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/04_after_save.png', fullPage: true });
console.log(' - 截图: 04_after_save.png');
testResults.screenshots.push('04_after_save.png');
// ========== 步骤5: 验证记账页面 ==========
console.log('\n[步骤5] 验证记账页面数据');
// 检查是否有"交通 - 5元"的记录
const recordItems = await page.$$('.record-item');
console.log(` - 账单记录数量: ${recordItems.length}`);
let trafficRecordFound = false;
for (const item of recordItems) {
const title = await item.$('.record-title');
const amount = await item.$('.record-amount');
if (title && amount) {
const titleText = await title.textContent();
const amountText = await amount.textContent();
console.log(` 记录: ${titleText} - ${amountText}`);
if (titleText === '交通' && amountText.includes('5')) {
trafficRecordFound = true;
}
}
}
if (trafficRecordFound) {
console.log(' - 验证结果: ✅ 找到"交通 - 5元"记录');
testResults.passed.push('记账页面显示交通支出5元');
} else {
console.log(' - 验证结果: ❌ 未找到"交通 - 5元"记录');
testResults.failed.push('记账页面未显示交通支出5元');
}
// 关闭弹窗(如果还开着)
const closeBtn = await page.$('#closeModal');
if (closeBtn) {
await closeBtn.click();
await page.waitForTimeout(500);
}
// 再次截图确认
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/05_record_page_after.png', fullPage: true });
console.log(' - 截图: 05_record_page_after.png');
testResults.screenshots.push('05_record_page_after.png');
// ========== 步骤6: 导航到统计页面 ==========
console.log('\n[步骤6] 导航到统计页面 http://localhost:5173/statistics');
await page.goto(`${baseUrl}/statistics`, { waitUntil: 'networkidle', timeout: 30000 });
await page.waitForTimeout(2000);
// 截图统计页面
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/06_statistics_page.png', fullPage: true });
console.log(' - 截图: 06_statistics_page.png');
testResults.screenshots.push('06_statistics_page.png');
// ========== 步骤7: 验证统计页面 ==========
console.log('\n[步骤7] 验证统计页面数据');
// 查找交通支出数据(应该是30元 = 25 + 5)
const chartCards = await page.$$('.chart-card');
console.log(` - 图表卡片数量: ${chartCards.length}`);
// 尝试多种方式查找交通支出数据
const pageContent = await page.content();
const hasTraffic30 = pageContent.includes('30') && pageContent.includes('交通');
// 查找类别统计
const categoryStats = await page.$$('.category-stat');
if (categoryStats.length > 0) {
for (const stat of categoryStats) {
const statText = await stat.textContent();
if (statText && statText.includes('交通')) {
console.log(` 找到交通统计: ${statText}`);
if (statText.includes('30')) {
console.log(' - 验证结果: ✅ 交通支出显示为30元');
testResults.passed.push('统计页面显示交通支出30元');
} else {
console.log(' - 验证结果: ⚠️ 交通支出不是30元');
testResults.failed.push('统计页面交通支出不是30元');
}
}
}
} else {
// 直接搜索页面中的金额
const expenseData = await page.evaluate(() => {
const body = document.body.innerText;
// 查找所有包含"交通"和金额的行
const lines = body.split('\n');
for (const line of lines) {
if (line.includes('交通') && (line.includes('25') || line.includes('30'))) {
return line;
}
}
return null;
});
if (expenseData) {
console.log(` 找到交通数据: ${expenseData}`);
if (expenseData.includes('30')) {
console.log(' - 验证结果: ✅ 交通支出显示为30元');
testResults.passed.push('统计页面显示交通支出30元');
}
} else {
console.log(' - 验证结果: ⚠️ 未明确找到交通支出30元数据');
testResults.failed.push('统计页面未找到交通支出30元');
}
}
// ========== 步骤8: 验证Dashboard首页 ==========
console.log('\n[步骤8] 导航到Dashboard首页验证数据');
await page.goto(`${baseUrl}/`, { waitUntil: 'networkidle', timeout: 30000 });
await page.waitForTimeout(2000);
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/07_dashboard_page.png', fullPage: true });
console.log(' - 截图: 07_dashboard_page.png');
testResults.screenshots.push('07_dashboard_page.png');
// 查找Dashboard中的支出数据
const dashboardContent = await page.evaluate(() => {
const body = document.body.innerText;
const lines = body.split('\n');
const relevantLines = [];
for (const line of lines) {
if (line.includes('交通') || (line.includes('支出') && line.match(/\d+/))) {
relevantLines.push(line.trim());
}
}
return relevantLines.slice(0, 10);
});
if (dashboardContent.length > 0) {
console.log(' - Dashboard相关数据:');
dashboardContent.forEach(line => console.log(` ${line}`));
}
} catch (error) {
console.error(`\n❌ 测试执行出错: ${error.message}`);
testResults.failed.push(`测试执行错误: ${error.message}`);
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/error_screenshot.png', fullPage: true });
testResults.screenshots.push('error_screenshot.png');
} finally {
await browser.close();
}
// ========== 测试报告 ==========
console.log('\n' + '='.repeat(60));
console.log('TDD测试报告');
console.log('='.repeat(60));
console.log(`\n通过项 (${testResults.passed.length}):`);
testResults.passed.forEach(item => console.log(`${item}`));
if (testResults.failed.length > 0) {
console.log(`\n失败项 (${testResults.failed.length}):`);
testResults.failed.forEach(item => console.log(`${item}`));
}
console.log(`\n截图文件:`);
testResults.screenshots.forEach(file => console.log(` - ${file}`));
console.log('\n' + '='.repeat(60));
if (testResults.failed.length === 0) {
console.log('🎉 测试结果: 全部通过!');
} else {
console.log(`⚠️ 测试结果: ${testResults.failed.length}项失败`);
}
console.log('='.repeat(60));
return testResults;
}
runTDDTest().catch(console.error);