refactor(编号): 测试验证层级去号——CI job / 门禁输出 / 命令行旗标换语义名 + ASCII 段名
用户裁定「我不想看到编号」。测试验证层级这一族的整族清退分三道并行:本笔是**代码与 CI 道** (CI 步骤与门禁输出面),代码注释面另走、文档面由文档道走。 口径(旧 → 语义名 → ASCII 段名,段名只进日志/旗标/job id/文件名): L0 静态门禁 static | L0a 钩子解释器预检 preflight | L0b 提交信息门禁 commitmsg L0c 体积门禁 size | L0.5 主机侧纯逻辑单测 host-unit | L0.5c 覆盖率 coverage - scripts/ci_local.py 43 站点:段标题与 [SUMMARY] 标签改 ASCII 段名(static: / host-unit:),函数 run_l0/run_l05 → run_static_gates/run_host_unit_tests, 收尾「已跑:」列表用段名。旗标改 --static-only / --host-unit-only,**旧旗标 --l0-only / --l05-only 保留为 argparse 别名**(肌肉记忆与既有脚本片段不断档, 实测 --help 两名列出)。 - .gitea/workflows/ci.yml 42 站点:job id l0-gates → static-gates、 l05-host-unit-tests → host-unit-tests;步骤名与 step-summary 标题改语义名; 日志名 l0-pre-commit.log → static-pre-commit.log、l05-<模块>.log → host-unit-<模块>.log;::error::/::notice:: 文案同步。yaml.safe_load 核过 两个 job id 与步骤名。 host-unit-tests;步骤名与 step-summary 标题改语义名;日志名 l0-pre-commit.log → static-pre-commit.log、l05-<模块>.log → host-unit-<模块>.log;::error::/::notice:: 文案同步。yaml.safe_load 核过两个 job id 与步骤名。 - 门禁脚本 18 站点:check_registration(登记簿理由串 7)、check_test_coverage 5、 README 8、check_generated_fresh 2、ram_baseline 2、check_size_gate 1、 ci_find_python.ps1 2、ci_runner_bootstrap.ps1 2、.pre-commit-config.yaml 2、 requirements.txt 1(保持纯 ASCII)。 - skills 7 站点:task-worktree(含 [SUMMARY] 样例两行)、mem-budget、ui-verify、 task_worktree.py 的实跑标签。 - AGENTS.md 3 站点:CI 段「只跑静态门禁 + 主机侧纯逻辑单测」、自查命令段、 「2026-10-11 静态门禁全灭」事件名。 - 归档:编号治理历史.md 新增 §10 换算表 + **撞族警示**(同形 L0/L1/L2/L3 还属 UI 设计 令牌层 / UI 菜单层级 / 采集链 / 链路时延段 / CubeMX 三层 / 硬件位号与 FTP 应答字面量 等六个族,其中 6 处在字符串字面量里,改了就是改行为——故全程只按行内置换、先判族)。 - docs/产品需求 §7.4 测试分层表:去号 + 顺带修掉上一批**错族替换疤**(该表 L1/L2 行曾被 采集链层名「语义取数与有效性 / 全周傅氏相量」「保护判据」顶替,现按内容改写为板端测试 套件 / 主机侧回归两行)。同文档 §1.5 G5 判据行同步。 门禁:ci_local --help 两面旗标并列;py_compile 7 个 .py 全过;yaml 解析通过; check_ids_new --worktree rc=0;git diff --check 干净;17 个改动文件 FFFD=0、无 CR、 BOM 与原文件一致(含 requirements.txt 纯 ASCII)。本族无机器识别面(单字母+数字是 新增行门禁的自述盲区),口径来自自建逐行扫描器,复扫本族形态归零。 - 交接说明:文档道 teammate 在改 CI 指南时中断,剩余 9 处双写疤与 29 处 CI 标识 (job id / 日志名 / 汇总行字面量)由 Lead 接手改完,逐处仍走断言式行内置换。
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
r"""
|
||||
主机侧单元测试(L0.5)的**覆盖率**口径、报告与增量门禁(纯标准库)。
|
||||
主机侧纯逻辑单元测试的**覆盖率**口径、报告与增量门禁(纯标准库)。
|
||||
|
||||
做什么:
|
||||
1. 发现 test/host/**/run_unit_test.py(与 scripts/ci_local.py 的 L0.5 同一套发现规则),
|
||||
1. 发现 test/host/**/run_unit_test.py(与 scripts/ci_local.py 的主机侧纯逻辑单测同一套发现规则),
|
||||
直接 import 各模块运行器、复用其中声明的 TestBuild(**单一事实源**:include 目录、
|
||||
桩顺序、测试单元路径都不在这里重复一遍);
|
||||
2. 用**与门禁完全相同的编译开关**(unit_test_harness._BASE_FLAGS)另建一份带 /Zi 调试
|
||||
@@ -16,7 +16,7 @@ r"""
|
||||
|
||||
为什么要它(2026-10-23,W5 验证常态):
|
||||
原评审报告 §4.8 记的两处空白之一(该报告 2026-10-25 已删除):无覆盖率口径——
|
||||
L0.5 只回答“跑过哪些 TC”,回答不了“生产源码里哪些行根本没进过”。用例数与 TC 追溯率
|
||||
主机侧纯逻辑单测只回答“跑过哪些 TC”,回答不了“生产源码里哪些行根本没进过”。用例数与 TC 追溯率
|
||||
会随时间上升,但覆盖率照的是另一类真相:**新增分支一行没测**(那类“读代码
|
||||
才发现”的缺陷,覆盖率是最便宜的机器照法)。
|
||||
|
||||
@@ -127,7 +127,7 @@ def load_harness():
|
||||
|
||||
|
||||
def discover_modules():
|
||||
"""{模块名: run_unit_test.py 绝对路径};发现规则与 ci_local.py 的 L0.5 一致。"""
|
||||
"""{模块名: run_unit_test.py 绝对路径};发现规则与 ci_local.py 的主机侧纯逻辑单测一致。"""
|
||||
out = {}
|
||||
if not HOST_TEST_DIR.is_dir():
|
||||
return out
|
||||
@@ -825,7 +825,7 @@ def run(args):
|
||||
def main():
|
||||
ap = argparse.ArgumentParser(
|
||||
prog="check_test_coverage.py",
|
||||
description="主机侧单测(L0.5)覆盖率:插桩跑测试 + 统计自研生产源码行/函数覆盖 + 基线增量门禁")
|
||||
description="主机侧纯逻辑单测覆盖率:插桩跑测试 + 统计自研生产源码行/函数覆盖 + 基线增量门禁")
|
||||
ap.add_argument("--module", action="append", metavar="NAME",
|
||||
help="只处理指定模块(可重复;默认全部)")
|
||||
ap.add_argument("--list", action="store_true", help="只列出发现的模块名")
|
||||
|
||||
Reference in New Issue
Block a user