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)