#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 测试修复后的应用程序 """ import sys import os def test_basic_imports(): """测试基础导入""" print("🔍 测试基础模块导入...") try: # 测试数据管理器 from data.project_manager import ProjectManager print("✅ ProjectManager 导入成功") # 测试UI组件 from ui.main_window import MainWindow print("✅ MainWindow 导入成功") from ui.import_project_dialog import ImportProjectDialog print("✅ ImportProjectDialog 导入成功") return True except Exception as e: print(f"❌ 导入失败: {e}") import traceback traceback.print_exc() return False def test_project_manager(): """测试项目管理器""" print("\n🔍 测试项目管理器...") try: from data.project_manager import ProjectManager # 创建项目管理器实例 pm = ProjectManager() print("✅ ProjectManager 实例创建成功") # 测试基本功能 projects = pm.get_all_projects() print(f"✅ 获取项目列表成功,共 {len(projects)} 个项目") return True except Exception as e: print(f"❌ 项目管理器测试失败: {e}") import traceback traceback.print_exc() return False def test_dialog_creation(): """测试对话框创建""" print("\n🔍 测试对话框创建...") try: from PyQt5.QtWidgets import QApplication from data.project_manager import ProjectManager from ui.import_project_dialog import ImportProjectDialog # 创建应用程序实例 app = QApplication.instance() if app is None: app = QApplication([]) # 创建项目管理器 pm = ProjectManager() # 创建导入对话框 dialog = ImportProjectDialog(pm) print("✅ ImportProjectDialog 创建成功") # 测试对话框的基本属性 print(f"✅ 对话框标题: {dialog.windowTitle()}") print(f"✅ 对话框大小: {dialog.size().width()}x{dialog.size().height()}") return True except Exception as e: print(f"❌ 对话框创建失败: {e}") import traceback traceback.print_exc() return False def test_main_window(): """测试主窗口创建""" print("\n🔍 测试主窗口创建...") try: from PyQt5.QtWidgets import QApplication from data.project_manager import ProjectManager from ui.main_window import MainWindow # 创建应用程序实例 app = QApplication.instance() if app is None: app = QApplication([]) # 创建项目管理器 pm = ProjectManager() # 创建主窗口 window = MainWindow(pm) print("✅ MainWindow 创建成功") # 测试窗口的基本属性 print(f"✅ 窗口标题: {window.windowTitle()}") print(f"✅ 窗口大小: {window.size().width()}x{window.size().height()}") return True except Exception as e: print(f"❌ 主窗口创建失败: {e}") import traceback traceback.print_exc() return False def main(): """主函数""" print("🚀 开始测试修复后的应用程序...") print("=" * 60) tests = [ ("基础导入", test_basic_imports), ("项目管理器", test_project_manager), ("对话框创建", test_dialog_creation), ("主窗口创建", test_main_window), ] passed = 0 total = len(tests) for test_name, test_func in tests: print(f"\n📋 测试: {test_name}") print("-" * 40) if test_func(): passed += 1 print(f"✅ {test_name} 测试通过") else: print(f"❌ {test_name} 测试失败") print("\n" + "=" * 60) print(f"📊 测试结果: {passed}/{total} 通过") if passed == total: print("🎉 所有测试通过!应用程序修复成功。") print("\n💡 现在可以尝试启动应用程序:") print(" python main.py") return True else: print("❌ 部分测试失败,需要进一步修复。") return False if __name__ == "__main__": success = main() print("\n按Enter键退出...") input() sys.exit(0 if success else 1)