#!/usr/bin/env python3 """ 集成测试脚本 用于验证single-test模块与main.py的集成是否正常工作 """ import sys import os import importlib.util def test_imports(): """测试模块导入""" print("🔍 测试模块导入...") # 测试配置文件导入 try: from config import get_config, SYSTEM_CONFIG print("✅ config.py 导入成功") except ImportError as e: print(f"❌ config.py 导入失败: {e}") return False # 测试主程序导入 try: from main import main, legacy_main, run_complete_task_mode, run_test_mode, run_interactive_test_mode print("✅ main.py 导入成功") except ImportError as e: print(f"❌ main.py 导入失败: {e}") return False # 测试启动脚本导入 try: from start import main_cli print("✅ start.py 导入成功") except ImportError as e: print(f"❌ start.py 导入失败: {e}") return False # 测试single-test模块导入 try: from single_test.test_main import main_menu, run_interactive_test_selection print("✅ single-test模块导入成功") except ImportError as e: print(f"⚠️ single-test模块导入失败: {e}") print(" 这是正常的,如果single-test目录不存在的话") return True def test_config(): """测试配置功能""" print("\n🔧 测试配置功能...") try: from config import get_config, update_config, print_config # 测试获取配置 time_sleep = get_config('SYSTEM', 'TIME_SLEEP', 5000) print(f"✅ 获取配置成功: TIME_SLEEP = {time_sleep}") # 测试更新配置 update_config('SYSTEM', 'TIME_SLEEP', 3000) new_time_sleep = get_config('SYSTEM', 'TIME_SLEEP', 5000) print(f"✅ 更新配置成功: TIME_SLEEP = {new_time_sleep}") # 恢复原始配置 update_config('SYSTEM', 'TIME_SLEEP', time_sleep) return True except Exception as e: print(f"❌ 配置功能测试失败: {e}") return False def test_file_structure(): """测试文件结构""" print("\n📁 测试文件结构...") required_files = [ 'main.py', 'start.py', 'config.py', 'README_INTEGRATION.md', ] optional_files = [ 'single-test/__init__.py', 'single-test/test_main.py', 'single-test/README.md', ] all_good = True for file_path in required_files: if os.path.exists(file_path): print(f"✅ {file_path} 存在") else: print(f"❌ {file_path} 不存在") all_good = False for file_path in optional_files: if os.path.exists(file_path): print(f"✅ {file_path} 存在") else: print(f"⚠️ {file_path} 不存在(可选)") return all_good def test_functionality(): """测试功能性""" print("\n⚙️ 测试功能性...") try: # 测试配置获取 from config import get_config single_test_enabled = get_config('SYSTEM', 'ENABLE_SINGLE_TEST', True) print(f"✅ 单独测试功能启用状态: {single_test_enabled}") # 测试模块可用性检查 from main import SINGLE_TEST_AVAILABLE print(f"✅ single-test模块可用性: {SINGLE_TEST_AVAILABLE}") # 测试函数存在性 from main import print_main_menu print("✅ print_main_menu 函数存在") return True except Exception as e: print(f"❌ 功能性测试失败: {e}") return False def print_integration_status(): """打印集成状态""" print("\n" + "="*60) print(" 集成状态报告") print("="*60) # 检查各个组件 components = { "主程序 (main.py)": os.path.exists('main.py'), "启动脚本 (start.py)": os.path.exists('start.py'), "配置文件 (config.py)": os.path.exists('config.py'), "集成文档": os.path.exists('README_INTEGRATION.md'), "测试模块目录": os.path.exists('single-test'), "测试模块初始化": os.path.exists('single-test/__init__.py'), "测试主程序": os.path.exists('single-test/test_main.py'), } for component, exists in components.items(): status = "✅ 可用" if exists else "❌ 缺失" print(f" {component:<20} {status}") print("\n📊 集成完成度:") available_count = sum(1 for exists in components.values() if exists) total_count = len(components) completion_rate = (available_count / total_count) * 100 print(f" {available_count}/{total_count} 组件可用 ({completion_rate:.1f}%)") if completion_rate >= 80: print(" 🎉 集成状态: 良好") elif completion_rate >= 60: print(" ⚠️ 集成状态: 部分可用") else: print(" ❌ 集成状态: 需要修复") print("="*60) def main(): """主测试函数""" print("🚀 开始集成测试...") print("="*60) # 运行各项测试 tests = [ ("模块导入", test_imports), ("配置功能", test_config), ("文件结构", test_file_structure), ("功能性", test_functionality), ] results = [] for test_name, test_func in tests: 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" + "="*60) print(" 测试结果") print("="*60) passed = 0 for test_name, result in results: status = "✅ 通过" if result else "❌ 失败" print(f" {test_name:<15} {status}") if result: passed += 1 print(f"\n📈 测试统计: {passed}/{len(results)} 通过") # 打印集成状态 print_integration_status() # 提供使用建议 print("\n💡 使用建议:") if passed == len(results): print(" 🎉 所有测试通过!您可以开始使用集成系统了") print(" 📖 运行 'python main.py' 开始使用") print(" 📖 运行 'python start.py -h' 查看更多选项") else: print(" ⚠️ 部分测试失败,请检查:") for test_name, result in results: if not result: print(f" - {test_name}") print(" 📖 查看 README_INTEGRATION.md 获取帮助") if __name__ == "__main__": main()