MetaCore-startup/tests/test_fixes.py
2025-10-11 09:24:06 +08:00

165 lines
4.5 KiB
Python

#!/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)