- 删除 design/dev/architecture/adr-0001~0007 共 7 份文件(内容留 git 历史可查) - architecture.md:删「ADR 审计」「ADR 立项清单」两节;清除全文 ADR-000X 注记、QQ 表/S 表 ADR 引用;未决表关闭已落定项(QQ-01/02/03),立项清单在途事项转登记 QQ-11~14;补 A1 生成姿态事实、autoload 四件清单、board_generator 性能姿态;文档状态立「事实源地位」条 - CLAUDE.md:恢复 RNG 单点硬性红线(去 ADR-0007 引用);新增「架构事实唯一源」红线;规范导航架构行标注唯一事实源 - doc-conventions:§5 增「架构事实唯一源」行;§11 活文档清单补架构文档 - registry:architecture.yaml 删 18 处 adr 字段、autoload_set 补 SaveManager/MetaProgression、board_rending 更新为 Node2D 已落地事实;entities.yaml 12 处引用清除 - game/ 代码注释约 60 处清 ADR-000X 引用(事实与日期保留);豁免标记 ADR-0007-exempt → rng-seed-exempt(main.gd/static_scan.sh/architecture.md/06/iter27 五处同步) - GDD/qa 实现报告/research 卡片/roadmap/tests README 引用全清;死链校验 1206 链接 0 死链、gdd_lint 0 不通过 - 代码中 adr/adr5 等为 adventure_runner 既有局部变量名(非 ADR 引用),未动
27 lines
1.4 KiB
GDScript
27 lines
1.4 KiB
GDScript
# tests/unit/example_test.gd — 示例测试:项目测试协议的活样板(gate-check 硬性要求 ≥1 示例测试)
|
||
# 运行:godot --headless --script tests/unit/example_test.gd
|
||
# 协议要点(D2 冒烟协议):
|
||
# extends SceneTree 以获得 quit(code);断言失败 → push_error + quit(1);全绿 → quit(0)
|
||
# --script 模式无 autoload 且无全局标识符(裸引用 ConfigDB = parse error)——
|
||
# 涉及表值的测试须显式实例化 ConfigDB,期望由表读值推导不写死
|
||
# 第一个真实测试:复制本文件为 tests/unit/<system>/<system>_<feature>_test.gd 并替换占位断言
|
||
extends SceneTree
|
||
|
||
const Kit := preload("res://tests/unit/test_kit.gd") # T6 收口:check/汇总退出样板单点
|
||
|
||
func _init() -> void:
|
||
Kit.check("headless SceneTree 协议可用(quit(code) 通道)", _test_headless_protocol())
|
||
Kit.check("命名规范可执行:test_[scenario]_[expected]", _test_naming_convention_followed())
|
||
quit(Kit.finish("example_test"))
|
||
|
||
func _test_headless_protocol() -> bool:
|
||
# 占位断言:验证脚本本身在 SceneTree 上下文可执行。
|
||
# 真实测试写法示例(引用不执行):
|
||
# var cfg := ConfigDBStub.new() # 显式实例化,非全局标识符
|
||
# return cfg.action_economy.ap_per_round >= 1
|
||
return true
|
||
|
||
func _test_naming_convention_followed() -> bool:
|
||
# 占位断言:本文件函数名均以 test_ 前缀 + 场景_期望 结构(docs/code-conventions.md)
|
||
return true
|