测试与验收¶
离线回归、真实模型与页面验收分开记录,不能互相替代。
| 层次 | 覆盖 | 是否调用真实服务 |
|---|---|---|
| Python 单元与路由 | 配置、鉴权、存储、模型边界、备份 | 否,外部边界替身 |
| 无浏览器前端回归 | 实际控制器、事件、取消、晚到结果、资源清理 | 否,设备和网络替身 |
| 真实服务验收 | 模型返回、保存读回、真实音频 | 是 |
| 视觉/设备验收 | 桌面/手机布局、麦克风、试听和下载 | 是,按场景执行 |
本地回归¶
安装开发依赖,并确保 Node.js 可用;前端控制器测试需要 Node。
python -m pip install -e ".[web,dev,docs]"
python -m pytest tests -q
chatvoice --tree
mkdocs build --strict
python -m build
python -m twine check dist/*
测试环境隔离账号和数据库。不要把生产 HOME、数据库路径或真实凭据注入离线测试。新增业务流程应先写失败用例,再实现;替身只放在设备/模型/网络边界,不能另写一套测试业务逻辑。
回归重点¶
- 账号所有权、CSRF、Token scope 和旧记录兼容。
- 录音开始/暂停/恢复/结束及重置时的资源关闭。
- 摘要、纪要修改、Todo 的原文保留、保存、撤销和晚到结果隔离。
- TTS 协议/格式/音色参数,以及复刻任务的上传、状态、下载和清理。
- 流式接口必须出现真实完成标记;未结束的 Promise 不算测试通过。
真实服务¶
源码包含独立验收入口,先读取当前参数:
使用一次性账号、授权或合成参考音频和短测试文字。结果区分通过、失败、受阻与未运行;每个样例记录真实响应、可见结果与清理。不要为了通过测试临时改计费策略或使用无关模型。
上线后检查版本与新进程、数据库、ASR 预热、文本与音频返回;通过实际公网入口验证,不以本地端口替代。声音复刻需真实任务和可解码音频,健康状态只能证明可达。