VWED_server/packaging/scripts/test_integrated.py

129 lines
3.5 KiB
Python
Raw Normal View History

2025-09-09 10:41:27 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
测试集成启动器
"""
import sys
import os
from pathlib import Path
# 添加项目路径
project_root = Path(__file__).parent.parent.parent
sys.path.insert(0, str(project_root))
def test_integrated_launcher():
"""测试集成启动器"""
print("测试集成启动器...")
try:
# 添加packaging目录到路径
packaging_dir = project_root / "packaging"
if str(packaging_dir) not in sys.path:
sys.path.insert(0, str(packaging_dir))
# 切换到packaging目录
original_cwd = os.getcwd()
os.chdir(str(packaging_dir))
# 导入启动器
import integrated_launcher
launcher = integrated_launcher.IntegratedLauncher()
# 测试配置检查
print("测试配置文件检查...")
has_complete_config = launcher.check_config_complete()
print(f"配置完整性检查结果: {has_complete_config}")
# 恢复工作目录
os.chdir(original_cwd)
print("✓ 集成启动器导入成功")
return True
except ImportError as e:
print(f"✗ 导入失败: {e}")
return False
except Exception as e:
print(f"✗ 测试异常: {e}")
return False
def test_config_gui():
"""测试配置GUI"""
print("测试配置GUI...")
try:
# 添加packaging目录到路径
packaging_dir = project_root / "packaging"
if str(packaging_dir) not in sys.path:
sys.path.insert(0, str(packaging_dir))
# 切换到packaging目录
original_cwd = os.getcwd()
os.chdir(str(packaging_dir))
# 导入配置GUI
from config_tool.integrated_config_gui import IntegratedConfigGUI
def dummy_callback(config_data):
print(f"测试回调: {config_data}")
# 创建GUI实例但不启动
gui = IntegratedConfigGUI(dummy_callback)
# 恢复工作目录
os.chdir(original_cwd)
print("✓ 配置GUI创建成功")
return True
except ImportError as e:
print(f"✗ GUI导入失败: {e}")
return False
except Exception as e:
print(f"✗ GUI测试异常: {e}")
return False
def main():
"""主测试函数"""
print("VWED集成启动器测试")
print("=" * 40)
tests = [
("集成启动器", test_integrated_launcher),
("配置GUI", test_config_gui)
]
results = []
for test_name, test_func in tests:
print(f"\n=== {test_name} ===")
try:
result = test_func()
results.append((test_name, result))
except Exception as e:
print(f"测试 {test_name} 发生异常: {e}")
results.append((test_name, False))
# 总结
print("\n" + "=" * 40)
print("测试结果:")
all_passed = True
for test_name, result in results:
status = "✓ 通过" if result else "✗ 失败"
print(f"{test_name}: {status}")
if not result:
all_passed = False
if all_passed:
print("\n🎉 所有测试通过!可以进行集成打包。")
print("运行命令: packaging/scripts/build_integrated.bat")
return 0
else:
print("\n❌ 部分测试失败,请检查并解决问题。")
return 1
if __name__ == "__main__":
exit(main())