功能 Case 生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3ddd765c/case-generator。
技能介绍
要解决什么问题
地图导航 QA 流水线里,testplan.md 已经写好了场景、预期行为和验证方式,但把每个场景手工落成 naviguide_tools 里的 test_*.py,还要对齐 TestBase、build_request()、call_target() 和历史 case 的写法,既慢又容易漏场景或断言字段。
Case Generator 是 Phase 4 子 Skill,在 qa-integration-pipeline 中自动执行:读测试计划与可选数据资产,参考 default_Case/ 模板,生成可直接纳入回归工程的 Python 用例,并创建 feature 分支 供下游 Jenkins 回归使用。
如何工作
- 输入:必填
feature(类名/文件名/分支名)与test_plan路径;可选data_assets、design_doc、default_case_dir、regression_project_dir。 - 解析 test_plan.md:从「测试场景设计」提取场景列表、数据筛选条件、预期行为与验证方式(协议字段 / 日志 / 二者);从「执行策略」读取 Apollo 开关与 AB 实验配置。
- 数据与风格:若有 Phase 3 数据资产,把坐标或响应样本写进代码或
test_data.json;读取default_Case/中 2~3 个历史 case,统一继承TestBase、断言写法,并为每个方法加上@unittest.skipUnless(globalSwitch.ai_case_<feature>, "")。 - 落盘与分支:输出到
case/AI_Case/<feature>/,在回归仓库(默认navi_guide_tools)基于最新 master 创建 feature 分支,注册globalSwitch.py开关,提交并推送远程;返回摘要中的case_branch供 Phase 5 regression-executor-and-analyzer 使用。 - 可选:生成前可查 LLM-Wiki 同类历史 case;与模板冲突时以
default_case_dir为准。语法错误会尝试自动修复(最多 3 轮)。
边界与注意
- 本 Skill 不中断询问用户;交互由上游 pipeline 处理,代码生成在 AI 侧完成,运行测试需经 Jenkins MCP。
- 断言字段须符合协议黑盒约束;场景解析失败、模板缺失或分支推送失败会返回
failed并可能阻断后续 Phase。 - 远程已存在同名分支时文档允许
git push -f覆盖,适合断点续跑;部分场景未生成时会以warning形式报告missing_scenes。
使用场景
- test_plan.md 已列出导航语音等场景,需要批量生成继承 TestBase 的 test_*.py 并注册 globalSwitch 开关
- Phase 3 产出 data_assets 含坐标与响应样本,要在 AI_Case 目录里写成参数化或 JSON 配套的回归用例
- qa-integration-pipeline Phase 4 需在 navi_guide_tools 仓库创建 feature 分支并推送,供 Jenkins 回归 Job 拉取 case_branch
- test_plan 里配置了 Apollo 开关与 AB 实验,生成用例时要在 set_apollo_config 与 set_abtest_params 里正确注入
适合人员
- 负责 map-qa/navi_guide_tools 回归工程、要把 test_plan 场景落成可推送分支的地图导航 QA
- 维护 qa-integration-pipeline、在 Phase 4 自动产出 case 并交给 regression-executor-and-analyzer 的集成工程师
- 编写 test_plan.md 与 data/filter_analysis 索引、希望 AI 按 default_Case 风格生成断言而非手写整套 case 的测试设计同学
- 通过 Jenkins MCP 触发回归、需要 case/AI_Case 下带 skipUnless 灰度开关且与 master 同步分支的发布验证人员