# 测试文档 ## 概述 本项目包含严格的单元测试,用于验证平台迁移和代码结构的正确性。 ## 测试文件 ### `platform-migration.test.js` 这是一个综合性的平台迁移测试套件,包含以下测试类别: #### 1. 目录结构测试 - ✅ 验证 `platforms` 目录存在 - ✅ 验证 `zhipu` 目录存在 - ✅ 验证 `zhipu` 子目录完整(questionAnswer, knowledgeLib, dataExport) - ✅ 验证 `deepseek` 目录保持存在 #### 2. 路由配置测试 - ✅ 验证 zhipu 路由路径配置(至少3个路径) - ✅ 验证 zhipu 导入路径配置(至少5个导入) - ✅ 验证没有遗留旧路径引用 - ✅ 验证 deepseek 路由路径保持正确 #### 3. 文件完整性测试 - ✅ 验证关键文件存在 - ✅ 验证文件内容可读 - ✅ 验证所有必要的组件文件 #### 4. 导入路径测试 - ✅ 验证没有遗留旧导入路径 - ✅ 验证新导入路径被正确使用 - ✅ 验证路径引用的一致性 #### 5. 构建兼容性测试 - ✅ 验证 TypeScript 配置存在 - ✅ 验证 Vite 配置存在 - ✅ 验证 package.json 存在 ## 运行测试 ```bash # 运行平台迁移测试 node tests/platform-migration.test.js ``` ## 测试结果示例 ``` 🚀 开始平台迁移测试... 🏗️ 测试目录结构... 🛣️ 测试路由配置... 📁 测试文件完整性... 📦 测试导入路径... 🔨 测试构建兼容性... 📊 测试结果汇总: 总测试数: 23 通过: 23 失败: 0 成功率: 100.00% 📋 详细结果: 1. ✅ platforms 目录存在 2. ✅ zhipu 目录存在 3. ✅ zhipu 子目录完整 ... 🎉 所有测试通过!平台迁移成功。 ``` ## 测试覆盖率 当前测试覆盖了以下关键方面: - **目录结构**: 100% 覆盖 - **路由配置**: 100% 覆盖 - **文件完整性**: 100% 覆盖 - **导入路径**: 100% 覆盖 - **构建兼容性**: 100% 覆盖 ## 最近修复记录 ### 智谱AI路由跳转问题修复 (2024-01-XX) **问题描述**: 智谱AI平台切换后,所有按钮都会重定向到404页面。 **根本原因**: 1. 导航组件中的智谱AI菜单项仍使用旧路径(`/questionAnswer`、`/knowledgeLib`、`/dataExport`) 2. 布局组件中的默认路径切换逻辑仍使用旧路径 **修复内容**: 1. 更新 `src/pages/layout/components/Nav.tsx` 中的智谱AI菜单项路径: - `/questionAnswer` → `/zhipu/questionAnswer` - `/knowledgeLib` → `/zhipu/knowledgeLib` - `/dataExport` → `/zhipu/dataExport` 2. 更新 `src/pages/layout/index.tsx` 中的默认路径切换逻辑: - 智谱AI默认路径从 `/questionAnswer` 改为 `/zhipu/questionAnswer` **验证结果**: - ✅ 所有测试通过(23项测试,100%通过率) - ✅ 构建成功 - ✅ 智谱AI平台路由跳转正常 ## 添加新测试 要添加新的测试用例,请在 `PlatformMigrationTests` 类中添加新的测试方法: ```javascript testNewFeature() { console.log('\n🔍 测试新功能...'); // 测试逻辑 const result = someTestLogic(); this.collector.addResult( '新功能测试', result, result ? '' : '测试失败的原因' ); } ``` 然后在 `runAllTests()` 方法中调用新测试: ```javascript runAllTests() { console.log('🚀 开始平台迁移测试...\n'); this.testDirectoryStructure(); this.testRouterConfiguration(); this.testFileIntegrity(); this.testImportPaths(); this.testBuildCompatibility(); this.testNewFeature(); // 添加新测试 // 输出结果 this.collector.printResults(); } ``` ## 测试最佳实践 1. **测试隔离**: 每个测试应该独立运行,不依赖其他测试的结果 2. **清晰命名**: 测试名称应该清楚地描述测试的目的 3. **详细错误信息**: 失败时提供详细的错误信息,便于调试 4. **覆盖率**: 确保测试覆盖所有关键功能点 5. **自动化**: 测试应该能够自动化运行,无需人工干预 ## 持续集成 建议在 CI/CD 流程中包含这些测试: ```yaml # .github/workflows/test.yml name: Platform Migration Tests on: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '18' - run: npm install - run: node tests/platform-migration.test.js - run: npm run build ```