用途
ln-404-test-executor 是一个 L3 Worker 技能,用于执行单个 Story 的最终测试任务(标签为“tests”),将其从 Todo 推进到 To Review。它只处理测试任务;其他任务应交给 ln-401。
主要能力
- 遵循 11 段测试任务计划,涵盖 E2E、集成、单元测试,以及基础设施、文档和清理部分。
- 施加基于风险的约束:优先级 ≥15 的场景需覆盖;每个测试需通过有用性标准;不编写框架、数据库、库或性能测试。
- 仅针对当前任务更新跟踪器与看板:Todo → In Progress → To Review。
- 支持 Hex-line 加速(如可用):在读取测试目标前使用 outline(file_path);使用窄范围 inspect_path(path=<相关测试目录>) 了解测试结构;如需完整清单可显式使用 max_entries=0。先用 grep_search(output_mode="summary") 查找测试/辅助/夹具,再按需升级到 output_mode="content", edit_ready=true;allow_large_output=true 仅作显式覆盖。测试/代码/配置文件优先使用 read_file() 与 edit_file();常规检查保持 read_file() 发现模式,编辑前使用 read_file(edit_ready=true, verbosity="full")。交接前使用 verify() 与 changes()。仅在 hex-line 不可用时回退到内置 Read/Edit。
使用方式
输入:taskId(必填),来源为 args、父 Story、看板或用户,表示要执行的测试任务。解析方式遵循 Task Resolution Chain,状态过滤为 Todo(标签:tests)。
强制读取的参考文件包括:references/environment_state_contract.md、references/storage_mode_detection.md、references/tracker_provider_contract.md、references/input_resolution_pattern.md、references/ci_tool_detection.md、references/mcp_tool_preferences.md、references/goal_articulation_gate.md、references/code_efficiency_criterion.md、references/coordinator_summary_contract.md、references/worker_runtime_contract.md、references/task_worker_runtime_contract.md、references/research_tool_fallback.md。
任务存储模式:从 Task Management → Provider 提取 task_provider(linear | github | file)。本技能使用的跟踪器操作:getTask、getStory、updateStatus(Todo → In Progress → To Review)、addComment(测试结果)。传输绑定见 references/provider_file.md、references/provider_github.md、references/provider_linear.md。
工作流(简要):
- 按指南运行 Task Resolution Chain 解析 taskId(状态过滤:[Todo, label: tests])。
- 通过配置的跟踪器提供者获取完整测试任务描述(getTask);阅读关联指南/手册/ADR/研究;查看父 Story(getStory)及提供的手动测试结果。 2b. 目标门:读取 references/goal_articulation_gate.md,说明这些测试的真实目标(需验证哪项业务行为,而非“编写测试”)。非目标:测试基础设施或框架行为而非业务逻辑。隐藏约束:实现变更可能破坏哪些现有测试。
- 阅读环境文档:docs/project/infrastructure.md(服务器 IP、端口、服务端点);docs/project/runbook.md(测试环境搭建、Docker 命令、测试执行前提)。使用运行手册中的确切命令。
- 验证计划:检查优先级 ≥15 覆盖与有用性标准;确保聚焦业务流(无仅基础设施测试)。
- 开始工作:通过配置的跟踪器提供者设置任务为 In Progress(updateStatus);在看板中移动。
- 实现并运行:读取 references/code_efficiency_criterion.md;按计划编写/更新测试;复用现有夹具/辅助;运行测试;修复失败的现有测试;按需更新基础设施/文档部分。交接前验证 3 项效率自检(尤其是:复用夹具而非重复搭建)。
- 完成:确保计数/优先级仍在限制内;设置任务为 To Review;在看板中移动;添加评论总结覆盖范围、运行的命令及任何偏差。
适用场景
适用于执行单个 Story 的最终测试任务(标签“tests”),从 Todo 到 To Review 的推进。不适用于实现任务。
限制与关键规则
- 仅单任务;不批量更新。
- 不标记 Done;由评审者批准。任务必须以 To Review 结束。
- 语言(EN/RU)与任务保持一致。
- 不编写框架/库/数据库/性能/负载测试;聚焦业务逻辑正确性(而非基础设施吞吐量)。
- 遵守限制与优先级;若违反,停止并返回发现。
- 不提交。所有改动保持未提交——由评审者审查并提交。
运行时摘要产物
强制读取 references/coordinator_summary_contract.md、references/worker_runtime_contract.md、references/task_worker_runtime_contract.md。共享契约:emit summary_kind=task-status;standalone 模式省略 runId 与 summaryArtifactPath;managed 模式在 worker 写入已验证摘要前传入 runId 与确切的 summaryArtifactPath。Monitor(2.1.98+):对于预期超过 30 秒的测试/覆盖率命令,使用 Monitor。回退:Bash(run_in_background=true)。
完成定义
- 任务被识别为测试任务并设置为 In Progress;看板已更新。
- 计划已验证(优先级/限制)且指南已读。
- 测试已实现/更新并执行;现有失败已修复。
- 按任务计划应用文档/基础设施更新。
- 任务设置为 To Review;看板已移动;添加摘要评论,包含命令与覆盖范围。
- 运行时摘要产物写入共享 task-status 位置。
测试失败分析协议
关键:当新编写的测试失败时,先停止并分析,再更改任何内容(失败的新测试往往表明实现缺陷,而非测试问题——盲目修复会掩盖根因)。
步骤 1:验证测试正确性
- 测试是否与 AC 要求完全匹配?(Story 中的 Given/When/Then)
- 预期值是否符合业务逻辑?
- 如不确定:查询 ref_search_documentation(query="[domain] expected behavior")
步骤 2:决策
- 测试匹配 AC?是 → 代码缺陷 → 修复实现,而非测试。否 → 测试错误 → 修复测试断言。不确定 → 强制:查询 MCP Ref 并在更改前询问用户。
步骤 3:在跟踪器评论中记录(addComment) "Test [name] failed. Analysis: [test correct / test wrong]. Action: [fixed code / fixed test]. Reason: [justification]"
红旗(需用户确认):
- ⚠️ 更改断言以匹配实际输出(“让测试变绿”)
- ⚠️ 移除“不工作”的测试用例
- ⚠️ 弱化期望(例如用 toContain 代替 toEqual)
绿灯(可安全继续):
- ✅ 修复测试搭建/模拟数据中的拼写错误
- ✅ 修复代码以匹配 AC 要求
- ✅ 添加缺失的测试搭建步骤
测试编写原则
-
严格断言——任何不匹配即失败 默认使用精确匹配断言:精确相等检查(优先)vs 部分/子串匹配(避免,除非有理由);精确长度检查 vs “有任意长度”检查;完整对象比较 vs 部分对象匹配;精确类型检查 vs 真值/假值检查。禁止 WARN 级断言——测试要么 PASS 要么 FAIL,无警告。
-
基于期望的确定性输出测试 对于确定性响应(API、转换):对复杂确定性输出使用快照/黄金文件测试;比较实际输出与期望参考文件;比较前规范化动态数据(时间戳 → 固定值,UUID → 占位符)。
-
黄金法则 “如果你知道期望值,就断言精确值。”禁止:当精确值已知时,使用宽松断言“让测试通过”。
参考文件
- 环境状态:references/environment_state_contract.md
- 存储模式操作:references/storage_mode_detection.md
- 看板格式:docs/tasks/kanban_board.md
- 强制读取:references/research_tool_fallback.md
版本:3.2.0 最后更新:2026-01-15