const { SEOValidator } = require('./utils/seo-validator'); const fs = require('fs'); const PAGES = [ { name: '首页', url: 'http://localhost:3000' }, { name: '关于我们', url: 'http://localhost:3000/about' }, { name: '联系我们', url: 'http://localhost:3000/contact' }, { name: '服务', url: 'http://localhost:3000/services' }, { name: '产品', url: 'http://localhost:3000/products' }, { name: '案例', url: 'http://localhost:3000/cases' }, { name: '新闻', url: 'http://localhost:3000/news' } ]; async function checkAllPages() { console.log('🔍 开始SEO检查...\n'); const validator = new SEOValidator(); for (const page of PAGES) { console.log(`📄 检查页面: ${page.name}`); const result = await validator.validatePage(page.url, page.name); if (result.issues.length === 0) { console.log(` ✅ 无SEO问题\n`); } else { console.log(` ⚠️ 发现 ${result.issues.length} 个问题:`); result.issues.forEach(issue => { console.log(` - ${issue.check}: ${issue.issue} (${issue.severity})`); }); console.log(); } } return validator.getSummary(); } function generateSummary(summary) { console.log('\n📊 SEO检查摘要\n'); console.log('─'.repeat(80)); console.log(`总页面数: ${summary.totalPages}`); console.log(`有问题页面: ${summary.pagesWithIssues}`); console.log(`总问题数: ${summary.totalIssues}`); console.log(`\n问题严重程度:`); console.log(` 🔴 高: ${summary.severity.high}`); console.log(` 🟡 中: ${summary.severity.medium}`); console.log(` 🟢 低: ${summary.severity.low}`); console.log('─'.repeat(80)); const passRate = ((summary.totalPages - summary.pagesWithIssues) / summary.totalPages * 100).toFixed(1); console.log(`\n✅ SEO通过率: ${passRate}%`); } async function main() { const summary = await checkAllPages(); generateSummary(summary); const outputPath = 'test-results/seo-summary.json'; fs.writeFileSync(outputPath, JSON.stringify(summary, null, 2)); console.log(`\n💾 详细结果已保存到: ${outputPath}`); } main().catch(console.error);