From 8847d960b5d5e839f0471dbf4f812e0ce64022e1 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Tue, 20 Oct 2026 05:43:39 +0800 Subject: [PATCH] =?UTF-8?q?docs(game/tests=E6=B3=A8=E9=87=8A=E9=87=8D?= =?UTF-8?q?=E5=9F=BA=E5=87=86):=20=E4=B8=89=E4=BB=B6=E5=A5=97=E6=B3=A8?= =?UTF-8?q?=E9=87=8A=E8=B7=AF=E5=BE=84=E9=9A=8F=20dev=E2=86=92engineering?= =?UTF-8?q?=20=E6=94=B9=E5=90=8D=E5=90=8C=E6=AD=A5=EF=BC=88=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=89=B9=E5=88=AB=E6=8E=88=E6=9D=83=E4=B8=BB=E5=8C=BA?= =?UTF-8?q?=E7=9B=B4=E6=94=B9=EF=BC=8C=E7=BA=AF=E6=B3=A8=E9=87=8A=E9=9B=B6?= =?UTF-8?q?=E8=A1=8C=E4=B8=BA=E5=8F=98=E6=9B=B4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/tests/README.md | 8 ++++---- game/tests/static_scan.sh | 4 ++-- game/tests/unit/contracts/system_contracts_test.gd | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/game/tests/README.md b/game/tests/README.md index c6ba0b27..77577154 100644 --- a/game/tests/README.md +++ b/game/tests/README.md @@ -3,7 +3,7 @@ **Engine**: Godot 4.7.2-stable(GDScript 单语言) **Test Framework**: 双载体——`--headless --script` 单元套件 + headless 场景探针;gdUnit4 **deferred**(D2 OQ1 关闭形态——本仓库不引第三方测试框架,需求见下「门禁」节) **门禁**: 本地闸——`tools/run_all_gates.sh`(收口唯一验收入口,按改动域选档 `--code`/`--docs`,跨两域或改闸件本身不带参数=全量;`--quick` 为中段自检)。本仓库**无远端、无 CI**(`.github/workflows/` 已删除,不建不留不参考);闸清单与域划分只在本脚本定义,文档不另列 -**Setup date**: 2026-09-12(2026-09-27 `7f24b640` 三层收敛:根 tests/ 并入 `game/tests/`、docs 并入 `design/dev/`、production 解散) +**Setup date**: 2026-09-12(2026-09-27 `7f24b640` 三层收敛:根 tests/ 并入 `game/tests/`、docs 并入 `design/engineering/`、production 解散) **参考实现**: `game/smoke/`(冒烟断言 + 场景探针族——正式工程的活样板;断言计数双口径见下节) ## Directory Layout @@ -66,7 +66,7 @@ timeout 120s godot --headless --script tests/run_all.gd ## Test Naming -- **Files**: `[system]_[feature]_test.gd`(领域命名,禁 ID 前缀——design/dev/code-conventions.md) +- **Files**: `[system]_[feature]_test.gd`(领域命名,禁 ID 前缀——design/engineering/code-conventions.md) - **Functions**: `test_[scenario]_[expected]` - **Example**: `reward_roll_test.gd` → `test_power_interval_rolls_within_bounds()` @@ -105,12 +105,12 @@ timeout 120s godot --headless --script tests/run_all.gd | `experiment_density.gd` | **在役·一次性** | 不同 mine_density 下的推理率/残余挖掘量取数(历史调参用) | 人工(用完即止) | > **纪律**:本表是这些件的唯一在册处。新增手动测量脚本必须同批登记(用途 + 触发方式 + 结果由谁判); -> 退役走 `design/dev/doc-conventions.md` 第 10 节退役规则,禁止「没看见=死件」式清理。 +> 退役走 `design/engineering/doc-conventions.md` 第 10 节退役规则,禁止「没看见=死件」式清理。 ## Static Scan(提交前本地跑) `tests/static_scan.sh` 实现静态扫描域 S1–S8 的可执行子集;规则全集与动机见 -`design/dev/architecture/architecture.md`「测试与质量域」节。新违规案例必须**先补扫描规则再修码**。 +`design/engineering/architecture/architecture.md`「测试与质量域」节。新违规案例必须**先补扫描规则再修码**。 ## 本地闸(唯一验收门禁) diff --git a/game/tests/static_scan.sh b/game/tests/static_scan.sh index d562289a..873816ad 100644 --- a/game/tests/static_scan.sh +++ b/game/tests/static_scan.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash # tests/static_scan.sh — 静态扫描域 S1–S8 可执行子集 -# 规则全集与动机:design/dev/architecture/architecture.md「测试与质量域」节 +# 规则全集与动机:design/engineering/architecture/architecture.md「测试与质量域」节 # 正式工程(core/ 存在)时执行;否则优雅跳过(工程在 game/core——2026-09-24 转正结构批后仓库根布局)。 -# 纪律:新违规案例必须先补本脚本规则再修码(design/dev/code-conventions.md 缺陷-规范对照表)。 +# 纪律:新违规案例必须先补本脚本规则再修码(design/engineering/code-conventions.md 缺陷-规范对照表)。 set -u cd "$(dirname "$0")/../.." # 迭代 27 T5 修正——2026-09-24 布局迁移后 /.. 落 game/ 致 game/core 守卫恒跳过(静默空转遗产),S 闸规则路径均为仓根相对 diff --git a/game/tests/unit/contracts/system_contracts_test.gd b/game/tests/unit/contracts/system_contracts_test.gd index 047222f7..55bf699e 100644 --- a/game/tests/unit/contracts/system_contracts_test.gd +++ b/game/tests/unit/contracts/system_contracts_test.gd @@ -1,6 +1,6 @@ # tests/unit/contracts/system_contracts_test.gd — 系统间接口契约断言(宁缺勿错——只断言已定稿行为) # 运行:godot --headless --path game --script res://tests/unit/contracts/system_contracts_test.gd -# 契约线清单来源:design/dev/architecture/architecture.md「API Boundaries」表 + 各系统 AC 前言(规范源)。 +# 契约线清单来源:design/engineering/architecture/architecture.md「API Boundaries」表 + 各系统 AC 前言(规范源)。 # 覆盖面: # 各系统→D2 ConfigDB 类型化单点(TABLE_MANIFEST 词表封闭——伤害单据 kind/目标规则/结账政策常量); # D2↔B1 掷点用途标签 ∈ RngService 封闭词表(EC12——settlement.armor_roll_stream 成员性);