# 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 缓存
- 模型配置获取
- 正则表达式模式

### 运行 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 | 模型列表、非流式对话、流式对话、无效模型处理、认证错误 |
| Claude | 模型列表、非流式消息、流式消息、Token 计数 |
| 高级 | 多轮对话、长输入处理、Reasoner 模式 |

### 运行账号测试

```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 13 tests in 8.685s
OK
```

### API 测试

```
📊 测试报告
总计: 10 个测试
✅ 通过: 10
❌ 失败: 0
⏱️  耗时: 15.32s
📈 通过率: 100.0%
```

## 故障排除

### 服务未运行

```
⚠️  服务未运行，跳过其他测试
```

解决：先启动服务 `python dev.py`

### 认证失败

```
❌ 失败: 状态码: 401
```

解决：检查 `config.json` 中的 API key 和账号配置

### 流式测试超时

可能是 DeepSeek API 响应慢，可以尝试：
- 使用 `--quick` 模式
- 增加测试超时时间
