秘宝批T6组E-1:三测试文件改名(treasure_items/treasure_target_violation/reward_dangling_treasure)+run_all登记+test_kit注释同步(run_all 14/15对照主区基线零新增,唯一红reward_overlay系②批遗留)
This commit is contained in:
1 parent
7e5b6d99b4
commit
f8c6db49c6
8 files changed
+20
-20
No files matched your search
@@ -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 直验(盲区补漏)
|
||||
|
||||
File renamed without changes.
File renamed without changes.
+7
-7
@@ -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)
|
||||
File renamed without changes.
+7
-7
@@ -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)
|
||||
File renamed without changes.
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user