30 lines
1.7 KiB
Markdown
30 lines
1.7 KiB
Markdown
# 开发与测试
|
|
|
|
克隆后先初始化锁定版本的 CLIProxyAPI 宿主:
|
|
|
|
```bash
|
|
git submodule update --init --recursive
|
|
```
|
|
|
|
需要构建本项目使用的 CPA 时,再按 [`../patch/README.md`](../patch/README.md) 的顺序应用三个宿主补丁。submodule 本身始终锁定官方基线,补丁来源以根仓库 `patch/` 为准。
|
|
|
|
升级 submodule、构建宿主、本地替换、验收和远端发布使用 [`operations.md`](operations.md)。该文档同时记录已确认的上游测试失败及免复测条件。
|
|
|
|
管理台界面开发使用 `go run ./cmd/webdemo -input fake -listen 127.0.0.1:8320`。该命令用独立 Fake 输入端启动正式页面资源,不依赖本地 CPA 和 billing 数据库。需要查看真实数据分布时,增加 `-database <SQLite 副本路径>` 显式挂载本地副本;省略该参数时继续使用生成数据。
|
|
|
|
开发按依赖从少到多推进:先确定数据和规则,再实现存储与服务,最后接入外部协议和界面。核心逻辑不依赖框架类型,协议转换集中在边界层。涉及持久化时,先定义迁移和历史数据语义
|
|
|
|
开发的核心在于每一步的可预见性与可测试性
|
|
|
|
开始前确认运行环境、配置加载方式和启动入口。开发与测试使用相同环境,不临时更换 Shell、依赖来源或配置路径。启动后先检查进程和健康状态,再验证功能
|
|
|
|
测试分三层:
|
|
|
|
- 单元测试验证规则和边界值
|
|
- 存储测试验证持久化、迁移和并发
|
|
- 集成测试验证完整调用链
|
|
|
|
每项功能同时覆盖成功、失败、取消、重试和乱序
|
|
|
|
集成测试应从公开入口产生数据,并使用日志、数据库或独立系统交叉核对,直接修改数据库只能用于迁移测试
|