From f8c6db49c6ef210bc87cb45f6adc6ee3daf5e235 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Mon, 5 Oct 2026 08:36:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=98=E5=AE=9D=E6=89=B9T6=E7=BB=84E-1?= =?UTF-8?q?=EF=BC=9A=E4=B8=89=E6=B5=8B=E8=AF=95=E6=96=87=E4=BB=B6=E6=94=B9?= =?UTF-8?q?=E5=90=8D=EF=BC=88treasure=5Fitems/treasure=5Ftarget=5Fviolatio?= =?UTF-8?q?n/reward=5Fdangling=5Ftreasure=EF=BC=89+run=5Fall=E7=99=BB?= =?UTF-8?q?=E8=AE=B0+test=5Fkit=E6=B3=A8=E9=87=8A=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=EF=BC=88run=5Fall=2014/15=E5=AF=B9=E7=85=A7=E4=B8=BB=E5=8C=BA?= =?UTF-8?q?=E5=9F=BA=E7=BA=BF=E9=9B=B6=E6=96=B0=E5=A2=9E=EF=BC=8C=E5=94=AF?= =?UTF-8?q?=E4=B8=80=E7=BA=A2reward=5Foverlay=E7=B3=BB=E2=91=A1=E6=89=B9?= =?UTF-8?q?=E9=81=97=E7=95=99=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/tests/run_all.gd | 6 +++--- .../{aux_items_test.gd => treasure_items_test.gd} | 0 ...tems_test.gd.uid => treasure_items_test.gd.uid} | 0 ...ux_test.gd => reward_dangling_treasure_test.gd} | 14 +++++++------- ...gd.uid => reward_dangling_treasure_test.gd.uid} | 0 ...n_test.gd => treasure_target_violation_test.gd} | 14 +++++++------- ...d.uid => treasure_target_violation_test.gd.uid} | 0 game/tests/unit/test_kit.gd | 6 +++--- 8 files changed, 20 insertions(+), 20 deletions(-) rename game/tests/unit/core/{aux_items_test.gd => treasure_items_test.gd} (100%) rename game/tests/unit/core/{aux_items_test.gd.uid => treasure_items_test.gd.uid} (100%) rename game/tests/unit/data_config/{reward_dangling_aux_test.gd => reward_dangling_treasure_test.gd} (73%) rename game/tests/unit/data_config/{reward_dangling_aux_test.gd.uid => reward_dangling_treasure_test.gd.uid} (100%) rename game/tests/unit/data_config/{aux_target_violation_test.gd => treasure_target_violation_test.gd} (77%) rename game/tests/unit/data_config/{aux_target_violation_test.gd.uid => treasure_target_violation_test.gd.uid} (100%) diff --git a/game/tests/run_all.gd b/game/tests/run_all.gd index b9a9a3b3..c7968bbe 100644 --- a/game/tests/run_all.gd +++ b/game/tests/run_all.gd @@ -29,10 +29,10 @@ func _suites() -> Array: {"path": "res://tests/unit/example_test.gd", "expect": 0}, {"path": "res://tests/unit/data_config/config_db_test.gd", "expect": 0}, {"path": "res://tests/unit/data_config/config_db_fatal_oob_test.gd", "expect": 1}, - {"path": "res://tests/unit/data_config/aux_target_violation_test.gd", "expect": 1}, # 迭代 7 T1——真视窄域护栏 - {"path": "res://tests/unit/data_config/reward_dangling_aux_test.gd", "expect": 1}, # 迭代 7 T1——aux 双表校验 + {"path": "res://tests/unit/data_config/treasure_target_violation_test.gd", "expect": 1}, # 迭代 7 T1——真视窄域护栏 + {"path": "res://tests/unit/data_config/reward_dangling_treasure_test.gd", "expect": 1}, # 迭代 7 T1——秘宝双表校验 {"path": "res://tests/unit/data_config/rng_service_test.gd", "expect": 0}, - {"path": "res://tests/unit/core/aux_items_test.gd", "expect": 0}, # 迭代 7 T7——秘宝结构冻结断言面 + {"path": "res://tests/unit/core/treasure_items_test.gd", "expect": 0}, # 迭代 7 T7——秘宝结构冻结断言面 {"path": "res://tests/unit/core/breakpoint_resume_test.gd", "expect": 0}, # 迭代 8 卡①/T9——断点往返/续玩确定性/幂等/退出清断点 {"path": "res://tests/unit/presentation/pacing_queue_test.gd", "expect": 0}, # 迭代 8 卡⑦ AC⑤/T9——排空零分叉/零丢行/延迟双态 {"path": "res://tests/unit/presentation/reward_overlay_test.gd", "expect": 0}, # 迭代 7 hotfix——奖励节点 UI 直验(盲区补漏) diff --git a/game/tests/unit/core/aux_items_test.gd b/game/tests/unit/core/treasure_items_test.gd similarity index 100% rename from game/tests/unit/core/aux_items_test.gd rename to game/tests/unit/core/treasure_items_test.gd diff --git a/game/tests/unit/core/aux_items_test.gd.uid b/game/tests/unit/core/treasure_items_test.gd.uid similarity index 100% rename from game/tests/unit/core/aux_items_test.gd.uid rename to game/tests/unit/core/treasure_items_test.gd.uid diff --git a/game/tests/unit/data_config/reward_dangling_aux_test.gd b/game/tests/unit/data_config/reward_dangling_treasure_test.gd similarity index 73% rename from game/tests/unit/data_config/reward_dangling_aux_test.gd rename to game/tests/unit/data_config/reward_dangling_treasure_test.gd index b8db39d1..1d539e6d 100644 --- a/game/tests/unit/data_config/reward_dangling_aux_test.gd +++ b/game/tests/unit/data_config/reward_dangling_treasure_test.gd @@ -1,8 +1,8 @@ # 致命类用例(独立进程,期望退出码 1) -# reward_dangling_aux——RewardTable aux 投放行双表校验(迭代 7 T1):aux 行 effect_id 引用 retired -# 道具(loot_compass——2026-09-29 拍板①乙退役)时,config_db 跨表校验必须报 reward_dangling_aux、 +# reward_dangling_treasure——RewardTable aux 投放行双表校验(迭代 7 T1):aux 行 effect_id 引用 retired +# 道具(loot_compass——2026-09-29 拍板①乙退役)时,config_db 跨表校验必须报 reward_dangling_treasure、 # load_tables 整体拒绝(退役件/失义件不得出现在掉落投放面)。 -# 运行:godot --headless --path game --script res://tests/unit/data_config/reward_dangling_aux_test.gd +# 运行:godot --headless --path game --script res://tests/unit/data_config/reward_dangling_treasure_test.gd # 退出码协议:1 = 校验正确拒绝(预期);2 = 违规表被放行(回归信号)。 extends SceneTree @@ -37,18 +37,18 @@ func _inject_violation() -> bool: func _init() -> void: if not Kit.copy_tables(SRC_DIR, BAD_DIR) or not _inject_violation(): - push_error("[reward_dangling_aux_test] 夹具目录准备失败") + push_error("[reward_dangling_treasure_test] 夹具目录准备失败") quit(2) return var db = ConfigDBScript.new() var ok: bool = db.load_tables(BAD_DIR, false) if ok: - push_error("[reward_dangling_aux_test] 违规表被放行——aux 双表校验失守(回归)") + push_error("[reward_dangling_treasure_test] 违规表被放行——aux 双表校验失守(回归)") quit(2) return if db.diagnostics_count("error") >= 1: - print("[reward_dangling_aux_test] 双表校验触发(reward_dangling_treasure 诊断在案,加载被拒)") + print("[reward_dangling_treasure_test] 双表校验触发(reward_dangling_treasure 诊断在案,加载被拒)") quit(1) return - push_error("[reward_dangling_aux_test] 加载被拒但无 reward_dangling_treasure 诊断——校验通道静默化(回归)") + push_error("[reward_dangling_treasure_test] 加载被拒但无 reward_dangling_treasure 诊断——校验通道静默化(回归)") quit(2) diff --git a/game/tests/unit/data_config/reward_dangling_aux_test.gd.uid b/game/tests/unit/data_config/reward_dangling_treasure_test.gd.uid similarity index 100% rename from game/tests/unit/data_config/reward_dangling_aux_test.gd.uid rename to game/tests/unit/data_config/reward_dangling_treasure_test.gd.uid diff --git a/game/tests/unit/data_config/aux_target_violation_test.gd b/game/tests/unit/data_config/treasure_target_violation_test.gd similarity index 77% rename from game/tests/unit/data_config/aux_target_violation_test.gd rename to game/tests/unit/data_config/treasure_target_violation_test.gd index f7f2eda7..35fcd536 100644 --- a/game/tests/unit/data_config/aux_target_violation_test.gd +++ b/game/tests/unit/data_config/treasure_target_violation_test.gd @@ -1,7 +1,7 @@ # 致命类用例(独立进程,期望退出码 1) -# aux_target_violation——真视窄域护栏(秘宝 GDD 结构冻结,迭代 7 T1):mine_reveal 行 target +# treasure_target_violation——真视窄域护栏(秘宝 GDD 结构冻结,迭代 7 T1):mine_reveal 行 target # 越域至 board_wide 时,TreasureItemTable.validate 必须报 load_bearing 错、load_tables 整体拒绝。 -# 运行:godot --headless --path game --script res://tests/unit/data_config/aux_target_violation_test.gd +# 运行:godot --headless --path game --script res://tests/unit/data_config/treasure_target_violation_test.gd # 退出码协议:1 = 校验正确拒绝(预期);2 = 违规表被放行(回归信号)。 # 时序注:纯加载期校验——不触运行期 fatal 通道,断言 load_tables 返回 false + 诊断在案即 quit(1)。 extends SceneTree @@ -10,7 +10,7 @@ const ConfigDBScript := preload("res://core/config_db.gd") const Kit := preload("res://tests/unit/test_kit.gd") # T6 收口:BAD 表目录夹具共享(copy_tables) const SRC_DIR := "res://data/tables" -const BAD_DIR := "user://aux_fixture_target_violation" +const BAD_DIR := "user://treasure_fixture_target_violation" func _inject_violation() -> bool: @@ -44,18 +44,18 @@ func _inject_violation() -> bool: func _init() -> void: if not Kit.copy_tables(SRC_DIR, BAD_DIR) or not _inject_violation(): - push_error("[aux_target_violation_test] 夹具目录准备失败") + push_error("[treasure_target_violation_test] 夹具目录准备失败") quit(2) return var db = ConfigDBScript.new() var ok: bool = db.load_tables(BAD_DIR, false) if ok: - push_error("[aux_target_violation_test] 违规表被放行——真视窄域护栏失守(回归)") + push_error("[treasure_target_violation_test] 违规表被放行——真视窄域护栏失守(回归)") quit(2) return if db.diagnostics_count("error") >= 1: - print("[aux_target_violation_test] 护栏触发(load_bearing 诊断在案,加载被拒)") + print("[treasure_target_violation_test] 护栏触发(load_bearing 诊断在案,加载被拒)") quit(1) return - push_error("[aux_target_violation_test] 加载被拒但无 load_bearing 诊断——护栏通道静默化(回归)") + push_error("[treasure_target_violation_test] 加载被拒但无 load_bearing 诊断——护栏通道静默化(回归)") quit(2) diff --git a/game/tests/unit/data_config/aux_target_violation_test.gd.uid b/game/tests/unit/data_config/treasure_target_violation_test.gd.uid similarity index 100% rename from game/tests/unit/data_config/aux_target_violation_test.gd.uid rename to game/tests/unit/data_config/treasure_target_violation_test.gd.uid diff --git a/game/tests/unit/test_kit.gd b/game/tests/unit/test_kit.gd index e8b81bb8..80ae2ece 100644 --- a/game/tests/unit/test_kit.gd +++ b/game/tests/unit/test_kit.gd @@ -1,6 +1,6 @@ # tests/unit/test_kit.gd — 单元测试协议样板单点(T6 样板收口批 2026-10-02) # 收口范围:11 份套件的 _check/_problems 样板(计数器 + PASS/FAIL 行 + 汇总退出)+ -# reward_dangling_aux/aux_target_violation 两致命类用例各自复制的 BAD 表目录夹具。 +# reward_dangling_treasure/treasure_target_violation 两致命类用例各自复制的 BAD 表目录夹具。 # 用法(--script 模式无 autoload/全局标识符——禁 class_name 裸引用,使用方 preload): # const Kit := preload("res://tests/unit/test_kit.gd") # Kit.check("断言描述", cond) # 计数 + 即时 PASS/FAIL 行 @@ -27,7 +27,7 @@ static func check(desc: String, ok: bool) -> void: # 静默收集通道:失败只记入 problems(即时零刷屏),finish 统一汇总。 -# 参序沿原函数式套件 aux_items/breakpoint_resume 的 check(cond, msg)——条件在前,与主通道相反。 +# 参序沿原函数式套件 treasure_items/breakpoint_resume 的 check(cond, msg)——条件在前,与主通道相反。 static func check_quiet(ok: bool, desc: String) -> void: checks += 1 if not ok: @@ -49,7 +49,7 @@ static func finish(suite: String, pass_line: String = "") -> int: return 0 -# BAD 表夹具共享(原 reward_dangling_aux/aux_target_violation 各自复制的 _copy_tables): +# BAD 表夹具共享(原 reward_dangling_treasure/treasure_target_violation 各自复制的 _copy_tables): # 整目录拷贝 src_dir → bad_dir(目录已建)。BAD_DIR 常量仍由各用例自持(名字互异——独立进程并行不互踩)。 static func copy_tables(src_dir: String, bad_dir: String) -> bool: DirAccess.make_dir_recursive_absolute(bad_dir)