219 lines
6.6 KiB
Python
219 lines
6.6 KiB
Python
|
#!/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()
|