165 lines
4.5 KiB
Python
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)
|