Aeria
GitHub
改 · 3.4

测试和关卡

最后核对 2026-10-07对应提交 1cff2b6依据 privacy_gate.py · secret_gate.py · brand_residue.py · ui_source_gates.py · ui_truth_lint.py

一次改动要过的东西:后端测试、前端测试、类型检查,再加几道关卡。关卡管的是测试管不到的事——发出去的东西里有没有私人信息、密钥、旧名字。

本页 5 节
  1. 测试
  2. 关卡
  3. 修一个 bug 的顺序
  4. 对应的代码
  5. 没做到的

测试

后端:

.venv/bin/python -m pytest

四千多条,整套要十几分钟。看退出码和最后一行的「N passed」,别只看过滤过的几行输出。

前端(网页后台在 webui_frontend/):

npm test
npm run build

npm run build 先做类型检查再构建。前端测试至少跑三遍:偶发的失败藏在单次运行里。

测试名用中文写出行为和预期(比如「他已经回了,不撤,补一条星号正字」),数据全部是合成的。

关卡

每道关卡只管一件事,提交前都要过:

发版本时还有两道:scripts/audit_artifact.py 查发出去的包里有没有源码、密钥、私人数据;scripts/release_wiring_check.py 核对几份构建信息一字不差。

修一个 bug 的顺序

  1. 先确定地复现,拿到真实的失败输出;
  2. 找根因:不用重试、加等待、放宽超时去盖住它;
  3. 先写一条测试,确认它在改之前的代码上是红的(在临时的工作区里撤掉修复跑一遍);
  4. 修;
  5. 整套跑一遍,看退出码;
  6. 看用户真正会看到的东西:改了界面就截图,浅色深色、宽屏手机都看。

对应的代码

没做到的