整理 App 与 test 目录:按职责分子目录并同步全库引用
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
| 层 | 名称 | 载体 | 抓住什么 |
|
||||
|---|---|---|---|
|
||||
| L0 | 静态门禁 | pre-commit 钩子(cppcheck / 代码规范 / 乱码 / 空白 / gitlint)+ `@build` | 编码规范、静态缺陷、任何编译警告 |
|
||||
| L1 | 板端测试套件 | testTask + `test/test_config.h` 套件 | 驱动 / 协议功能(串口 `[PASS]/[FAIL]` + `=== ... PASSED` 汇总) |
|
||||
| L1 | 板端测试套件 | testTask + `test/board/test_config.h` 套件 | 驱动 / 协议功能(串口 `[PASS]/[FAIL]` + `=== ... PASSED` 汇总) |
|
||||
| L2 | 主机侧回归 | `@test` 串口日志标记 + LVGL 模拟器像素 / 池水位回归 | 启动序列、UI 渲染、LVGL 内存池水位 |
|
||||
| L3 | 人工目检 | 上机屏幕、PC 端交互工具 | 视觉内容、自动化无法覆盖的场景 |
|
||||
|
||||
@@ -72,11 +72,11 @@ G0~G3 命令详见 §6 / §7;ui-verify 完整命令见 `UI_自动化测试流
|
||||
|
||||
### 3.1 统一入口与套件互斥
|
||||
|
||||
所有测试套件经唯一入口调度:**testTask**(`test/test_config.c` 的 `start_test_task()`),按 `test/test_config.h` 选中的 `TEST_SUITE_*` 分发到套件运行函数:
|
||||
所有测试套件经唯一入口调度:**testTask**(`test/board/test_config.c` 的 `start_test_task()`),按 `test/board/test_config.h` 选中的 `TEST_SUITE_*` 分发到套件运行函数:
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
T["testTask: start_test_task()(test/test_config.c)"] -->|TEST_SUITE_CH395F| A["ch395f_test_run()<br/>硬件层 1~5 / NET 层 6~11"]
|
||||
T["testTask: start_test_task()(test/board/test_config.c)"] -->|TEST_SUITE_CH395F| A["ch395f_test_run()<br/>硬件层 1~5 / NET 层 6~11"]
|
||||
T -->|TEST_SUITE_STORAGE| B["storage_test_run()<br/>FTL + FatFS"]
|
||||
T -->|TEST_SUITE_GD5F| C["gd5f_test_run()<br/>10 阶段"]
|
||||
T -->|TEST_SUITE_RTC| D["sd2506_test_run()<br/>2 个阶段组"]
|
||||
@@ -169,8 +169,8 @@ static void phaseN_run(void) {
|
||||
### 3.5 新测试文件 / 新套件 checklist
|
||||
|
||||
1. `test/` 下新建 `xxx_test.h` / `xxx_test_task.c`(按 §3.2 模式);
|
||||
2. `test/test_config.h`:补 `TEST_SUITE_XXX` 注释开关 + 互斥 `#error` 加项 + 分发分支(include + `TEST_SUITE_NAME`);
|
||||
3. `test/test_config.c`:`start_test_task()` 加分发分支;
|
||||
2. `test/board/test_config.h`:补 `TEST_SUITE_XXX` 注释开关 + 互斥 `#error` 加项 + 分发分支(include + `TEST_SUITE_NAME`);
|
||||
3. `test/board/test_config.c`:`start_test_task()` 加分发分支;
|
||||
4. **双端注册核查**(`new-source-file` skill):新 `.c` 必须加入 `MDK-ARM/STM32F407-Demo.uvprojx`;test/ 代码仅 MCU 端编译,**不**登记模拟器 CMakeLists(UI / App 共用代码才需双端);
|
||||
5. `@build` → 0 错 0 警;
|
||||
6. 立 `docs/测试说明/<模块>_Test_Guide.md`(§2 模板);
|
||||
@@ -185,10 +185,10 @@ static void phaseN_run(void) {
|
||||
| 工具 | 位置 | 作用 |
|
||||
|---|---|---|
|
||||
| Python 串口助手(serial_tool) | `tools/serial_tool/serial_tool.py`(.venv + pyserial) | 常驻 daemon + 薄 CLI:列端口 / 开关 / 收发 / 全量日志 / wait-idle |
|
||||
| `test/run_boot_test.py` | `test/` | 一键闭环:采集 → 烧录 → 提取日志 → 校验 |
|
||||
| `test/verify_log.py` | `test/` | 日志标记校验(Required / Forbidden → PASS / FAIL) |
|
||||
| `test/host/run_boot_test.py` | `test/host/` | 一键闭环:采集 → 烧录 → 提取日志 → 校验 |
|
||||
| `test/host/verify_log.py` | `test/host/` | 日志标记校验(Required / Forbidden → PASS / FAIL) |
|
||||
| `.opencode/serial_config.json` | 仓库 | **串口端口单一配置源**(当前 COM6 / 115200);换端口只改这个文件 |
|
||||
| `test/ftp_*.py`(4 个)/ `ch395f_socket_test.py` / `time_sync_server.py` | `test/` | PC 端交互测试工具(FTP 客户端 / socket 回显 / 对时推送) |
|
||||
| `test/host/ftp_*.py`(4 个)/ `ch395f_socket_test.py` / `time_sync_server.py` | `test/host/` | PC 端交互测试工具(FTP 客户端 / socket 回显 / 对时推送) |
|
||||
| `simulator/tests/*.py`(4 个) | `simulator/tests/` | LVGL 模拟器回归脚本(见 §5) |
|
||||
|
||||
### 4.2 新工具约定
|
||||
|
||||
Reference in New Issue
Block a user