# DS2API 测试文档 ## 测试文件结构 ``` tests/ ├── __init__.py # 测试模块初始化 ├── test_unit.py # 单元测试(不依赖网络) ├── test_all.py # API 集成测试 ├── test_accounts.py # 账号池测试 └── run_tests.sh # 测试运行脚本 ``` ## 快速开始 ### 运行所有测试 ```bash # 使用脚本 ./tests/run_tests.sh all # 或直接运行 python3 tests/test_unit.py # 单元测试 python3 tests/test_all.py # API 测试 ``` ### 运行单元测试 ```bash python3 tests/test_unit.py ``` 测试内容: - 配置加载 - 消息处理(`messages_prepare`) - WASM 缓存 - 模型配置获取 - 正则表达式模式 - 流式响应解析 - **工具调用解析**(`parse_tool_calls`) - **Token 估算** ### 运行 API 集成测试 ```bash # 完整测试 python3 tests/test_all.py # 快速测试(跳过耗时测试) python3 tests/test_all.py --quick # 指定端点 python3 tests/test_all.py --endpoint http://your-server.com # 详细输出 python3 tests/test_all.py --verbose ``` 测试覆盖: | 类别 | 测试项 | |-----|--------| | 基础 | 服务健康检查 | | OpenAI | 模型列表、非流式对话、流式对话、无效模型处理、认证错误、Reasoner 模式 | | Claude | 模型列表、非流式消息、流式消息、Token 计数 | | 高级 | 多轮对话、长输入处理 | | **工具调用** | OpenAI 工具调用(流式/非流式)、Claude 工具调用 | | **搜索模式** | OpenAI 搜索模式 | ### 运行账号测试 ```bash # 测试所有账号登录 python3 tests/test_accounts.py --login # 测试账号轮换 python3 tests/test_accounts.py --rotation # 运行所有 python3 tests/test_accounts.py --all ``` ## 配置 测试使用 `config.json` 中的配置: ```json { "keys": ["test-api-key-001"], "accounts": [ {"email": "xxx@gmail.com", "password": "xxx", "token": ""} ] } ``` ## 预期输出 ### 单元测试 ``` Ran 32 tests in 9.0s OK ``` ### API 测试 ``` 📊 测试报告 总计: 18 个测试 ✅ 通过: 18 ❌ 失败: 0 ⏱️ 耗时: ~60s 📈 通过率: 100.0% ``` ## 故障排除 ### 服务未运行 ``` ⚠️ 服务未运行,跳过其他测试 ``` 解决:先启动服务 `python dev.py` ### 认证失败 ``` ❌ 失败: 状态码: 401 ``` 解决:检查 `config.json` 中的 API key 和账号配置 ### 流式测试超时 可能是 DeepSeek API 响应慢,可以尝试: - 使用 `--quick` 模式 - 增加测试超时时间