✅ test(e2e): 增加语音日程用户旅程 - #374
Open
jing-gou wants to merge 1 commit into
Open
Conversation
There was a problem hiding this comment.
本次审查覆盖新增的 Host/HIL schedule voice runner、设备 descriptor、证据生成和 Python 测试。Host 侧现有 5 项 Python 测试及新增脚本编译均通过;以下问题会影响 HIL 可执行性或测试结果可信度。
Additional findings
scripts/schedule_voice_e2e.py:?: [P1] 将 descriptor 的串口传给实际 HIL 命令:prepare校验并租用了 descriptor 中的descriptor.port,但这里启动的run_bailian_sparkbot_test.sh没有收到该端口;脚本会改用继承的SPARKBOT_SERIAL或其默认值。因此使用示例 descriptor 指定的板卡时,租约保护的是一个串口而测试实际可能打开另一个串口,甚至误测默认设备。请显式传递SPARKBOT_SERIAL=str(self.descriptor.port)(或增加等价的--port参数)。scripts/schedule_voice_e2e.py:?: [P1] 让 --scenario 真正驱动被测旅程: CLI 暴露了--scenario,但 Host adapter 这里始终调用固定的run_host_matrix,而 HIL adapter 的run也始终发送同一组 create/query 文本;除默认场景外,用户请求的场景(例如 update、delete-idempotency 或 recurrence-exception)不会被执行却可能报告通过。请把选择的 scenario 传入 Host/HIL 执行路径,并在证据中记录实际 case。scripts/schedule_voice_e2e.py:?: [P2] 失败矩阵不得写成 passed 证据: 这里在计算三个 scenario outcome 之前就把证据status固定为passed。如果新增矩阵中的任一操作失败,MatrixResult.passed会导致 runner 失败,但已落盘的journey-<run_id>.json仍宣称通过,消费者会得到与最终 runner 状态矛盾的证据。请先计算passed,再将status设为passed或failed(并保留对应失败信息)。
Comment on lines
+464
to
+466
| report = _last_json_object(completed.stdout) | ||
| if not report: | ||
| raise RunnerFailure(FailureCategory.PRODUCT, "voice_report_missing") |
There was a problem hiding this comment.
[P1] 解析多行 HIL 报告而不是按行解析
被调用的 voice_linx_serial_multiturn_test.py 使用 json.dumps(..., indent=2) 输出多行 JSON;_last_json_object 只尝试解析以 { 开头的单行,因此对该正常输出始终返回 None,HIL 成功执行随后会被错误归类为 voice_report_missing。请解析完整 stdout 中的 JSON(或让被调用脚本输出机器可读的单行结果)。
Collaborator
Author
PCB HIL 执行记录(2026-08-26)
|
JunLang-7
reviewed
Aug 26, 2026
JunLang-7
left a comment
Collaborator
There was a problem hiding this comment.
hard code了日期 如2026-09-02 过期之后再进行HIL会失败
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
结论
增加 Issue #350 的 Host/HIL 语音日程用户旅程 runner、夹具、板卡 descriptor 模板和证据测试。
背景
Issue #350 要求通过正式语音会话验证 schedule.create/query/update/delete、幂等、补全、歧义/冲突和语音修正,并明确记录当前未公开的 schedule.undo 缺口。
改动范围
scripts/schedule_voice_e2e.py与scripts/run_schedule_voice_e2e.py。接口与依赖影响
仅复用现有统一 E2E Runner、设备租约、公开 schedule MCP 边界和百炼语音脚本;不新增运行时依赖或持久化格式。
测试与构建证据
Host 测试和 Python 测试由该分支提供;真实 PCB/SparkBot HIL 需在对应设备、网络和
BAILIAN_KEY_FILE可用后执行。当前 PR 不伪造未执行的硬件证据。已知风险
周期例外和 schedule.undo 取决于当前公开契约;未开放时记录
product_gap。HIL 适配器只负责真实设备语音边界,业务断言仍需结合设备实际 evidence。兼容窗口与回退
新增脚本和配置模板,不改变现有运行路径。回退本 PR 即可移除新增测试文件。
Refs #350