安装方式
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add larksuite/cli --skill cli-e2e-testcase-writer 当为编译后的 `lark-cli` 中某个 `tests/cli_e2e/{domain}` 域添加或更新 Go CLI 端到端测试覆盖率时使用,尤其是在需要实时 `--help` 或 `schema` 探索、基于场景的 `clie2e.RunCmd` 工作流以及按域维护 `coverage.md` 的场景下。
49
下载量
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add larksuite/cli --skill cli-e2e-testcase-writer name: cli-e2e-testcase-writer
description: 当为编译后的 `lark-cli` 中某个 `tests/cli_e2e/{domain}` 域添加或更新 Go CLI 端到端测试覆盖率时使用,尤其是在需要实时 `--help` 或 `schema` 探索、基于场景的 `clie2e.RunCmd` 工作流以及按域维护 `coverage.md` 的场景下。
metadata:
requires:
bins: ["lark-cli"]每次运行只处理一个领域。为该领域生成两个工件:
tests/cli_e2e/{domain}/ 下的工作流测试用例文件tests/cli_e2e/{domain}/coverage.md专注于领域测试用例文件。不要更改共享的 E2E 支持代码(如 tests/cli_e2e/core.go),除非用户明确要求。将 tests/cli_e2e/demo/ 仅作为参考。
coverage.md 中解释原因。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>
lark-cli <domain> <group> --help 没有列出子命令,则 <group> 本身就是叶子命令。task +create 计为一个叶子命令,将 task tasks get 计为一个叶子命令。tests/cli_e2e/{domain}/ 下已有的覆盖率。不要统计 tests/cli_e2e/demo/。识别所涉及工作流的可证明风险:无效输入、缺少前置条件、身份或权限、状态转换、输出形状、清理安全性。如果只能测试快乐路径,则在 coverage.md 中记录被阻塞的风险区域。
clie2e.RunCmd(ctx, clie2e.Request{...})。Args 中;JSON 放在 Params(URL/路径参数)和 Data(请求体)中。t.Run 子步骤。parentT.Cleanup 上注册清理,使其在子测试失败时仍然执行。在迭代过程中和完成之前,运行 go test ./tests/cli_e2e/{domain} -count=1。如果命令形状或行为不清楚,在更改断言之前重新检查帮助或模式(步骤 1)。
coverage.md:从实时帮助输出重新计算分母,将每个命令标记为 shortcut 或 api,并为整个领域保留一个命令表。BinaryPath、DefaultAs 或 Format。require.NoError、result.AssertExitCode、result.AssertStdoutStatus、assert 和 gjson。{ok: bool})断言为 true;API 响应({code: int})断言为 0。t.Helper()。保持 coverage.md 简洁且机械化。包括:
Test... 工作流、关键的 t.Run(...) 证明点以及主要阻塞点推荐结构:
# <Domain> CLI E2E Coverage
## 度量
- 分母:N 个叶子命令
- 已覆盖:N
- 覆盖率:N%
## 摘要
- TestXxx:... 关键 `t.Run(...)` 证明点 ...
- 阻塞区域:...
## 命令表
| 状态 | 命令 | 类型 | 测试用例 | 关键参数形状 | 注释 / 未覆盖原因 |
| --- | --- | --- | --- | --- | --- |
| ✓ | task +create | shortcut | task_status_workflow_test.go::TestTask_StatusWorkflow | 基本创建;带截止日期创建 | |
| ✕ | task +assign | shortcut | | 无 | 需要真实用户 open_id |
shortcut 或 api。go test -run 友好的形式编写测试用例条目。parentT.Cleanup 清理中执行的命令不计为已覆盖。--as user 有效。tests/cli_e2e/demo/ 下放置新的真实覆盖率。Params 或 Data 字段。lark-cli-e2e- 或 <domain>-e2e-。delete。