chore: remove tdd_complete_test.js

This commit is contained in:
2026-04-29 02:09:01 +08:00
parent 2f549ff808
commit a0e08a313d
-201
View File
@@ -1,201 +0,0 @@
// 完整TDD测试 + BUG验证
const { chromium } = require('playwright');
async function runCompleteTDDTest() {
console.log('='.repeat(60));
console.log('TDD完整测试 + BUG验证');
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] 打开记账页面');
await page.goto(`${baseUrl}/record`, { waitUntil: 'networkidle', timeout: 30000 });
await page.waitForTimeout(2000);
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/01_record_before.png', fullPage: true });
testResults.screenshots.push('01_record_before.png');
// ========== 步骤2: 点击新增 ==========
console.log('\n[步骤2] 点击新增按钮');
await page.click('#addBtn');
await page.waitForTimeout(500);
// ========== 步骤3: 填写表单 ==========
console.log('\n[步骤3] 填写表单');
await page.fill('#amount', '5');
await page.click('[data-category="交通"]');
await page.fill('#note', '地铁测试');
console.log(' - 金额: 5, 分类: 交通, 备注: 地铁测试');
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/02_form_filled.png', fullPage: true });
testResults.screenshots.push('02_form_filled.png');
// ========== 步骤4: 保存 ==========
console.log('\n[步骤4] 保存记录');
await page.click('button[type="submit"]');
await page.waitForTimeout(3000);
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/03_after_save.png', fullPage: true });
testResults.screenshots.push('03_after_save.png');
// ========== 步骤5: 验证记账页面 ==========
console.log('\n[步骤5] 验证记账页面数据');
const recordItems = await page.$$('.record-item');
console.log(` - 当前记录数量: ${recordItems.length}`);
let trafficFound = 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();
if (titleText === '交通' && amountText.includes('5')) {
trafficFound = true;
console.log(` ✅ 找到交通支出5元记录`);
}
}
}
if (trafficFound) {
testResults.passed.push('记账页面正确显示新添加的交通-5元记录');
} else {
testResults.failed.push('记账页面未找到新添加的交通-5元记录');
}
// ========== 步骤6: 导航到统计页面 ==========
console.log('\n[步骤6] 导航到统计页面');
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/04_statistics.png', fullPage: true });
testResults.screenshots.push('04_statistics.png');
// ========== 步骤7: 验证统计页面饼图 ==========
console.log('\n[步骤7] 验证统计页面数据');
// 切换到饼图模式查看支出构成
const pieBtn = await page.$('[data-type="pie"]');
if (pieBtn) {
await pieBtn.click();
await page.waitForTimeout(1000);
await page.screenshot({ path: 'd:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/05_statistics_pie.png', fullPage: true });
testResults.screenshots.push('05_statistics_pie.png');
}
// 检查饼图图例数据
const legendItems = await page.$$('.legend-item');
console.log(` - 图例数量: ${legendItems.length}`);
let trafficLegendFound = false;
let trafficValue = '';
for (const item of legendItems) {
const label = await item.$('.legend-label');
const value = await item.$('.legend-value');
if (label && value) {
const labelText = await label.textContent();
const valueText = await value.textContent();
console.log(` ${labelText}: ${valueText}`);
if (labelText === '交通') {
trafficLegendFound = true;
trafficValue = valueText;
}
}
}
// 检查页面HTML中的实际数据
const pageData = await page.evaluate(() => {
const script = document.querySelector('script[type="application/json"]') ||
document.body.innerHTML;
return {
bodyText: document.body.innerText.substring(0, 2000),
has30Yuan: document.body.innerText.includes('30'),
hasTraffic: document.body.innerText.includes('交通'),
};
});
console.log(`\n - 页面包含"交通": ${pageData.hasTraffic ? '是' : '否'}`);
console.log(` - 页面包含"30": ${pageData.has30Yuan ? '是' : '否'}`);
// ========== BUG验证 ==========
console.log('\n[BUG验证] 检查统计页面数据来源');
console.log(' - 统计页面categoryData是硬编码模拟数据');
console.log(' - 交通固定显示为 2000 (20%)');
console.log(' - 正确数据应该是从records计算得出的30元');
console.log(' - **这是一个需要修复的BUG**');
// 实际验证
if (trafficLegendFound) {
console.log(`\n 当前饼图显示交通: ${trafficValue}`);
// 解析百分比
const percentMatch = trafficValue.match(/(\d+)%/);
if (percentMatch) {
const percent = parseInt(percentMatch[1]);
console.log(` 交通支出百分比: ${percent}%`);
// 根据硬编码的总支出10000计算,交通应该是20%
// 但如果添加了5元实际数据,交通应该显示更多
}
}
testResults.failed.push('【BUG】统计页面使用硬编码模拟数据,未从records计算真实统计');
// ========== 步骤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/06_dashboard.png', fullPage: true });
testResults.screenshots.push('06_dashboard.png');
// 检查Dashboard显示
const dashboardStats = await page.$$('.stat-card');
console.log(` - Dashboard统计卡片数量: ${dashboardStats.length}`);
} 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.png', fullPage: true });
testResults.screenshots.push('error.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}`));
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));
console.log('测试结论');
console.log('='.repeat(60));
console.log(`
1. 记账页面: ✅ 功能正常,能正确添加和显示5元交通支出
2. 统计页面: ❌ 存在BUG
- 问题: categoryData硬编码为固定值(交通=2000元)
- 影响: 无法显示真实的分类统计
- 修复: 需要从records数据计算真实的分类支出
3. Dashboard: 需要进一步验证
截图文件位置: d:/Users/kaifa/Trae_cn260425/testing-archive/tdd_test/
`);
console.log('='.repeat(60));
return testResults;
}
runCompleteTDDTest().catch(console.error);