README.md 4.4 KB

测试文档

概述

本项目包含严格的单元测试,用于验证平台迁移和代码结构的正确性。

测试文件

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 存在

运行测试

# 运行平台迁移测试
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 类中添加新的测试方法:

testNewFeature() {
    console.log('\n🔍 测试新功能...');
    
    // 测试逻辑
    const result = someTestLogic();
    
    this.collector.addResult(
        '新功能测试',
        result,
        result ? '' : '测试失败的原因'
    );
}

然后在 runAllTests() 方法中调用新测试:

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 流程中包含这些测试:

# .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