已关闭
[agent-friendly] agent-friendly 功能测试覆盖缺失 #220
aflyingto创建于  5月4日关闭于  5月4日
aflyingto成员
5月4日 创建

问题描述

agent-friendly 相关功能的测试覆盖不完整,影响功能稳定性保障。

缺失测试分类

测试类型 状态 优先级
ConfirmOrAbort 单元测试 完全缺失 高
NewAuthError/NewNotFoundError 单元测试 缺失 高
ExitSuccess 退出码测试 缺失 高
issue/pr view --json 测试 缺失 中
--yes 跳过确认流程测试 不完整 中
Example 格式帮助文本测试 完全缺失 低

解决建议

1. 新建 pkg/cmdutil/confirm_test.go:

func TestConfirmOrAbort_YesFlagSkipsConfirmation(t *testing.T)
func TestConfirmOrAbort_NonInteractiveReturnsUsageError(t *testing.T)
func TestConfirmOrAbort_InputMatchesExpected(t *testing.T)

2. 补充 pkg/cmdutil/errors_test.go:

func TestNewAuthError(t *testing.T)
func TestNewNotFoundError(t *testing.T)
func TestExitCodeSuccess(t *testing.T)  // ExitCode(nil) == ExitSuccess

3. 补充命令 JSON 输出测试:

  • pkg/cmd/issue/view/view_test.go: TestViewRunJSONOutput
  • pkg/cmd/pr/view/view_test.go: TestViewRunJSONOutput

已有良好测试参考

  • pkg/cmd/help/help_test.go: JSON 输出格式验证完整
  • pkg/cmd/pr/merge/merge_test.go: JSON 输出验证
  • pkg/cmd/issue/comments/comments_test.go: JSON 输出验证
likedislike
Aaflyingto成员
5月4日 添加了label:scope/agent-friendly, status/triage,type/testing
Aaflyingto成员
5月4日 关联了里程碑:Agent-Friendly Compliance Phase 2
aflyingto成员
5月4日 评论:

验证记录

验证 agent-friendly 测试覆盖问题:

  1. ConfirmOrAbort 单元测试 ✓ 确认缺失

    • pkg/cmdutil/ 目录无 confirm_test.go 文件
  2. NewAuthError/NewNotFoundError 测试 ✓ 确认缺失

    • errors_test.go 只有 ExitCode 和 FormatAPIID 测试
    • 未覆盖 NewAuthError/NewNotFoundError 构造函数
  3. ExitSuccess 退出码测试 ✓ 已修复

    • Issue #221 已合入,包含 ExitSuccess(nil) 和 ExitConflict 测试

实际需补充测试: ConfirmOrAbort、NewAuthError、NewNotFoundError

问题确认存在,开始开发。

likedislike
Aaflyingto成员
5月4日 添加了label:status/verified;删除了label:scope/agent-friendly, status/triage,type/testing
Aaflyingto成员
5月4日 添加了label:status/in-progress;删除了label:status/verified
aflyingto成员
5月4日 评论:

✅ PR #160 已合入主干,agent-friendly 功能测试覆盖已补充。

likedislike
Aaflyingto成员
5月4日 关闭了 issue
zhaoxufengzhaoxufeng
6月4日 关联了pull request:feat(precommit): structured reason, install failure categories, stdout-only version (#260)