| name | gui-smoke-test |
| description | 对 DS Editor Lite Windows 桌面程序执行端到端 GUI 冒烟测试。用于启动程序、加载声库、绘制音符、确认合成波形与播放、保存 DSPX 工程,以及成功后清理测试产物。音频导出当前暂不测试。 |
DS Editor Lite GUI 冒烟测试
目标
通过真实 Windows GUI 完成一条最小端到端工作流:启动程序、选择已安装声库、绘制音符、确认合成、确认播放并保存 DSPX。只有全部断言成立且成功清理测试产物后,才能报告测试通过。
临时限制:Windows 原生音频导出保存对话框存在焦点问题。在该问题修复前,不要打开音频导出对话框,不执行 WAV 导出或文件级音频校验。
测试约束
- 在操作界面前完整读取并遵循
computer-use skill。仅用它控制 Windows GUI;不要混用其他 UI 自动化方案。
- 若没有可用的
DsEditorLite.exe,先完整读取并遵循项目的 CMake Build skill 完成构建。
- 启动独立测试实例,并记录它的可执行文件路径、窗口 ID 和进程 ID。不要复用或关闭用户已有的编辑器实例。
- 每次观察后只执行一个有意义的 GUI 动作,再重新观察。控件编号和截图坐标只对当前观察有效。
- 不要硬编码跨运行坐标。Qt 嵌套对话框可能暴露重复或错位的辅助功能节点;优先依据最新截图中的可见标签操作。
- 在系统临时目录下创建名称以
ds-editor-lite-gui-smoke- 开头的唯一测试目录,记录其规范化绝对路径。所有 DSPX 和临时文件都必须位于该目录。
- 不覆盖现有文件,不使用宽泛通配符清理,也不触碰测试目录之外的工程或音频。
执行流程
1. 准备并启动
- 优先使用用户指定的构建;否则依次检查常见的 Debug、Release 输出位置。
- 创建唯一测试目录,预先确定
gui-smoke.dspx 的绝对路径。
- 启动
DsEditorLite.exe,从窗口列表中精确选择本次测试实例。
- 确认处于无用户数据的新工程。若应用恢复了其他工程,通过“文件 → 新建”进入空工程,但不要丢弃用户未保存的内容。
2. 加载声库并绘制音符
- 展开歌手或声库选择器,选择任意真实可用的叶子项。排除“无歌手”、继承、跟随轨道、禁用项和空分组。
- 等待声库加载完成,并确认选择器显示了实际歌手名称。
- 切换到铅笔工具,在钢琴卷帘的 C4 附近拖出一个约 1–2 拍的音符。
- 音符左边缘不得贴着工程或唱段起点;起点前至少留出 1 拍空白,不能顶头写。
- 确认音符矩形和默认歌词或音素可见。
3. 断言合成与播放
- 最多等待 60 秒,每隔数秒获取新截图。
- 同时确认以下合成证据:
- 音符上出现音高曲线或合成后的音高变化;
- 音素信息可见;
- 音符下方出现非空、非平直的音频波形。仅有音符矩形不能算作已合成。
- 记录播放前的运输时间和播放头位置,点击播放,等待至少 2 秒,再获取新截图。
- 只有时间值增加且播放头前进时,才判定播放命令有效。随后停止播放。
4. 保存工程
- 使用“另存为”把工程保存到预先记录的
gui-smoke.dspx。
- 确认保存对话框关闭、窗口标题反映工程名且没有未保存标记。
- 用文件系统独立确认 DSPX 存在且长度大于零。
5. 结束测试
- 确认 DSPX 保存成功后结束工作流。
- 不要打开“文件 → 导出 → 音频文件”或任何音频导出、预演、另存为对话框。
- WAV 导出与文件级音频校验暂不作为冒烟测试的通过条件。
通过、失败与清理
仅当声库加载、音符绘制、合成波形、播放推进和 DSPX 保存全部成功时执行以下操作:
- 关闭本次测试窗口,确认记录的窗口或进程已经消失。
- 重新规范化测试目录路径,确认它位于系统临时目录内,且目录名以
ds-editor-lite-gui-smoke- 开头。
- 只删除这一条已验证的测试目录;删除后确认 DSPX 和目录均不存在。
- 报告“通过”,并列出歌手名、合成证据、播放前后时间、DSPX 字节数与清理结果,同时注明音频导出按临时限制跳过。
任一断言失败时报告“失败”,说明失败阶段和观察证据。保留测试目录供诊断并明确给出路径;不要把失败伪装成通过,也不要清理可能有助于定位问题的产物。