#!/usr/bin/env python3 """ 测试应用启动 """ import asyncio import sys import os # 添加项目根目录到Python路径 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from app.core.app.factory import create_development_app from app.utils.structured_log import get_structured_logger, LogLevel logger = get_structured_logger(__name__, LogLevel.INFO) async def test_app_startup(): """测试应用启动""" try: logger.info("开始测试应用启动") # 创建应用 app = create_development_app() logger.info("应用创建成功") # 模拟启动事件 logger.info("模拟启动事件") startup_event = None for route in app.routes: if hasattr(route, 'methods') and 'GET' in route.methods and route.path == '/': logger.info("找到根路径路由") break # 检查启动事件 if hasattr(app, 'router') and hasattr(app.router, 'startup'): startup_events = app.router.startup if hasattr(startup_events, '__len__'): logger.info(f"启动事件数量: {len(startup_events)}") for event in startup_events: logger.info(f"启动事件: {event}") else: logger.info("启动事件存在但不是列表类型") else: logger.info("没有找到启动事件") logger.info("应用启动测试完成") return True except Exception as e: logger.error(f"应用启动测试失败: {e}") import traceback logger.error(f"异常堆栈: {traceback.format_exc()}") return False if __name__ == "__main__": success = asyncio.run(test_app_startup()) if success: print("✅ 应用启动测试成功") sys.exit(0) else: print("❌ 应用启动测试失败") sys.exit(1)