SuperAPI AI 工具集

cli-e2e-testcase-writer

智能体与模型

查看项目

更新于 10-15 23:48

技能介绍

用途:为编译后的 lark-cli 在 tests/cli_e2e/{domain} 中单个域补充或更新 Go E2E 覆盖,每次只处理一个域,产出两类工件:该域下的工作流测试用例文件,以及 tests/cli_e2e/{domain}/coverage.md。除非用户明确要求,不改动 tests/cli_e2e/core.go 等共享支持代码;tests/cli_e2e/demo/ 仅作参考。

主要能力与标准:测试用例应场景化、自包含,端到端证明一条工作流(创建后读取,或变更后清理);一个文件对应一条工作流或一个紧密相关特性。可变流程需用写后读断言证明持久化状态,而非只看退出码。无法证明的前置条件路径可留空,并在 coverage.md 说明原因。

使用方式:先探索真实 CLI,运行 lark-cli --help、lark-cli <domain> --help、lark-cli <domain> +<shortcut> -h、lark-cli <domain> <group> --help、lark-cli <domain> <group> <method> -h、lark-cli schema <domain>.<group>.<method>。统计叶子命令作为分母(叶子命令执行动作且无子命令;task +create 与 task tasks get 各计一个叶子,不统计参数组合)。复用已有 tests/cli_e2e/{domain}/ 覆盖,不统计 demo。编辑前先选定证明面。用例使用 clie2e.RunCmd(ctx, clie2e.Request{...}),命令路径与普通 flag 放 Args,JSON 放 Params 与 Data;每条工作流一个顶层测试配 t.Run 子步骤,teardown 注册在 parentT.Cleanup。迭代与收尾运行 go test ./tests/cli_e2e/{domain} -count=1。

限制与护栏:必须以 bot identity 运行,不假设 --as user 可用;不依赖既有远端数据,不伪造 open_ids、chats、docs 等远端 fixture;优先确定性负例;不猜测 Params 或 Data 字段;除非命令确实需要,不硬编码明显默认值;可见远端测试数据不含 agent、模型或厂商品牌名,用 lark-cli-e2e- 或 <domain>-e2e- 之类中性前缀;只有断言返回字段或持久化状态才算覆盖,仅退出码不算;仅清理的执行不算主要覆盖(创建资源同一工作流中的删除除外)。coverage.md 需简洁机械,含域 H1 标题、指标(分母、已覆盖数、覆盖率)、摘要、一张覆盖全域的命令表,标注 shortcut 或 api,仅 teardown 用到的命令不计入覆盖。