Repository navigation
Production Testing
athenavi edited this page Oct 9, 2026
·
1 revision
权威来源:
docs/contributing.md(CI 五个 job)·python-engine/evals/README.md(评测套件)· transcript 契约(这块怎么测)。
| 层 | 位置 | 跑法 |
|---|---|---|
| Go 单测 | internal/**/*_test.go |
go test -mod=mod ./... -count=1 |
| Python 单测 | python-engine/tests/ |
python -m pytest -q -m "not integration" |
| 集成测试 | 同上,-m integration
|
需真实 PG + Redis + 网关 |
| 前端测试 | frontend-vue/src/**/__tests__/ |
pnpm run test(vitest + jsdom) |
| 评测套件 | python-engine/evals/ |
见 evals/README.md(E1 / E2 / E3) |
integration 标记的用例需要真 PostgreSQL + Redis,还要把网关也起起来
(引擎侧统一客户端会走网关的 /v1/internal/*):
redis-server --port 6390 --appendonly no --save ""
REDIS_ADDR=127.0.0.1:6390 go run ./cmd/chiron
POSTGRES_DSN=<来自 .env> REDIS_URL=redis://127.0.0.1:6390/0 \
python -m pytest -q -m integration本机没有真实栈时不要假装跑过 —— 把没跑的项写下来(这是本仓库的一贯做法)。
transcript 的 7 个模块是纯几何(不碰 DOM)⇒ 可以用事件序列做确定性回归,
不需要浏览器。列表容器(MessageList)的窗口化与锚定用 jsdom + @vue/test-utils 测。
已知的边界:没有浏览器级 e2e 测试。这是 UI/UX 差距分析里指出的最大系统性差距 (测试/源码字节比 0.11× vs 对标项目 0.77×)。补它不需要新依赖,缺的是接缝 (把内核换成可脚本化的假实现)。
-
一个测试必须能观察到它声称的东西 —— 例如:
$emit之后同步读 props 是读不到新值的 (Vue 会批量传播),要await nextTick()或读父组件的 setup 状态。 - 断言失败时先分清"代码错"还是"我对代码的模型错" —— 后者很常见。
- flaky 的第二次出现,才是"记录它"变成"修它"的临界点(第一次应先取证)。
- 贡献与验收 —— 门禁与自查清单
- transcript —— 被契约化的那块怎么测
本页由仓库内 docs/wiki/ 同步生成(scripts/sync_github_wiki.py)。请不要直接编辑本 wiki —— 改动会下次同步时被覆盖;请改仓库里的对应文件。
Advanced
Contributing
Core
Getting Started
Learn
Production
Reference