开发与工程

Go 测试技能

针对 Go 测试、Bubbletea TUI 和黄金文件的实用测试模式指南。

59/ 100
推荐

整体可靠,存在已披露的局限;按说明试用并保留回滚路径。

查看评分依据 ↓
可直接使用于
Codex · Claude Code
Star 数
★ 7.6k
最近更新
3 天前
License
MIT
go-testingtable-driven-testsgolden-filesbubbletea
+3teatesttest-coverageintegration-testing

这个 Skill 能做什么,适合哪些场景?

该技能为编写或审查 Go 测试提供了一套结构化的方法,重点关注表驱动测试、行为验证以及 Bubbletea/TUI 应用的状态转换测试。它涵盖单元测试、集成测试和黄金文件测试,并就何时使用每种模式提供了清晰的决策门。该技能强调看似微小的最佳实践,例如使用 t.TempDir() 管理文件系统,以及使用 testing.Short() 标记集成测试以便跳过。它是更大的 Gentle-AI 生态系统的组成部分,可通过该生态系统的安装程序安装。

该技能通过读取 SKILL.md 中定义的规则和模式来指导测试实践。它建议在编写或审查测试时采用的方法,包括使用表驱动测试、通过直接调用 Model.Update() 进行 TUI 状态测试、使用 teatest 进行完整 TUI 交互测试,以及使用黄金文件进行渲染输出测试。它还规定了执行步骤,如先运行针对性测试,仅在需要时通过 -update 标志更新黄金文件,且更新后必须重新运行测试以验证变更。

适合
  • 正在为 Go 项目添加测试覆盖率的开发人员,希望遵循公认的模式。
  • 正在审查测试代码的工程师,需要核对测试是否覆盖了正确的场景。
  • 正在为 Bubbletea 应用编写测试,需要决定何时直接测试模型,何时使用 teatest。
  • 为 CLI 工具或 UI 组件维护黄金文件,且需要确保测试输出确定性的测试人员。
  • 需要将集成测试标记为在短模式(如 CI 的快速检查)下可跳过的团队。

如何安装这个 Skill?

使用前请注意
  • 该技能本身无危险操作,但用户需留意其推荐的 go test 命令可能执行外部命令,应在受控环境中运行。
  • 技能未提供用户确认机制,建议在使用前确认测试范围。
  • 依赖 charmbracelet 库可能从海外拉取,若网络受限可能影响使用。
开始前你需要
Agent 需要具备
  • Shell / 命令行
  • 本地文件系统

该技能是更大的 Gentle-AI 仓库的一部分。安装方法:

  1. 克隆或下载 Gentle-AI 仓库:git clone https://github.com/Gentleman-Programming/gentle-ai
  2. 将 internal/assets/skills/go-testing/ 目录复制到你的 Agent Skills 目录(例如 Claude Code 的 ~/.claude/skills/ 或项目 .claude/skills/)。
  3. 或者,运行官方安装脚本(macOS/Linux:curl -fsSL https://raw.githubusercontent.com/Gentleman-Programming/gentle-ai/main/scripts/install.sh | bash;Windows PowerShell:irm https://raw.githubusercontent.com/Gentleman-Programming/gentle-ai/main/scripts/install.ps1 | iex),然后按照提示选择该技能。
通用方式:手动安装到 Claude Code(macOS / Linux)
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/Gentleman-Programming/gentle-ai.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/internal/assets/skills/go-testing" ~/.claude/skills/
rm -rf "$tmp"

根据源仓库地址和 Skill 路径自动生成,只复制这个 Skill 的文件夹。如果上文有作者提供的安装方式,请优先按作者说明操作;想只在当前项目中使用,把 ~/.claude/skills 换成项目里的 .claude/skills。

如何使用这个 Skill?

试试这样说

安装后,把下面任意一句发给 Agent 即可触发:

  • 使用 go-testing 技能为这个函数编写测试
  • 使用 go-testing 技能审查这些测试

在编写或审查 Go 测试时,直接以自然语言向代理请求该技能,例如“使用 go-testing 技能为这个函数编写测试”或“使用 go-testing 技能审查这些测试”。代理将根据 SKILL.md 中的指导,选择适当的模式、执行测试并报告结果。对于黄金文件,需要时运行 go test -update,检查差异,然后再运行 go test 确认。

这个 Skill 有哪些优点和局限?

优点
  • 为常见测试场景提供了清晰的决策门。
  • 强制了实用的最佳实践,如 t.TempDir() 和 testing.Short() 跳过。
  • 通过直接测试 Model.Update(),优雅地处理了 TUI 测试。
  • 与黄金文件更新工作流良好集成。
  • 作为更大的 Gentle-AI 生态系统的组成部分,受益于集中安装和更新。
局限
  • 未提供可直接使用的脚本或模板;它是指导性技能,需要代理执行。
  • 未提及对测试框架(如 testify)的具体支持,可能会被过度限制。
  • 黄金文件更新的 -update 路径未详细说明,需要用户了解 Go 测试惯例。
  • 兼容性仅基于文本;未提及 Windows 特定问题。

这个 Skill 与同类方案有什么区别?

与相关 Skills 并排比较;分数均按同一 FSRS 标准得出。

Skill FS 评分 Star 数 最近更新 License
Go 测试技能 本页 59 · 推荐 ★ 7.6k 3 天前 MIT
测试驱动开发工作流 57 · 谨慎使用 ★ 103k 8 天前 MIT
VS Code 集成测试运行助手 ✓ Microsoft · 官方 52 · 谨慎使用 ★ 193k 3 天前 MIT
代码审查与测试指导 ✓ OpenAI · 官方 43 · 不推荐 ★ 128k 3 天前 Apache-2.0
测试技能:行为驱动的测试工作流 37 · 不推荐 ★ 33k 1 个月前 Apache-2.0

FollowSkills 如何评估这个 Skill?

FollowSkills 评估 · FSRS-2.0
推荐
59/ 100 五分制 3.0 / 5
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
1信任安全20 / 25 · 4.0/5

该技能是纯指导性指南,不包含任何代码执行、外部网络调用或敏感数据处理。它指示使用 t.TempDir() 和 skippable integration tests,体现最小权限和隔离原则。技能明确指定了 golden file 更新流程和测试范围,提供了清晰的数据流。扣分原因:缺少明确的用户确认机制(如是否需要在运行前获得用户允许),外部命令执行(如 go test)的权限和影响未详细说明,且发布者身份未经验证,来源归属有限。

2可靠稳定9 / 20 · 2.3/5

指令自洽,决策门和步骤明确,提供具体代码示例。依赖如 bubbletea 和 teatest 在 go.mod 中列出,属于主流库。但静态审查无法执行测试,未提供针对异常输入(如无效测试参数)的显式故障反馈机制。扣分原因:未提供故障处理指南,如测试失败时如何诊断,且关键路径未经验证。

3适用触发11 / 15 · 3.7/5

明确针对 Go 测试、bubbletea TUI 和 golden files 场景,触发条件精确,决策门和步骤清晰。提供中文支持较少,但技能本身不依赖海外服务。扣分原因:适用范围虽清晰,但未明确边界(如不适用于非 Go 项目),且无中文文档,可能影响中文用户使用。

4规范维护10 / 15 · 3.3/5

文档结构良好,包含结构和步骤,有示例和 FAQ(未提供但引用参考),声明了 Apache-2.0 许可和版本 1.0,作者信息清晰。但缺少 changelog、维护责任说明和已知限制披露。扣分原因:版本和许可有,但无版本历史和维护路径,且示例文件部分不完整。

5有效结果6 / 15 · 2.0/5

技能明确完成测试编写和审查任务,决策门和输出契约清晰,提供命令行示例,边际价值明显。但静态审查无执行证据,无法验证输出质量,且未提供比较不同测试方法的成本效益分析。扣分原因:无执行证据,输出直接可用性未验证。

6证据核验3 / 10 · 1.5/5

技能内容为纯文本,无可执行测试,无 CI 证据或第三方执行记录。提供代码示例,但未覆盖关键路径,如 teatest 的具体集成。扣分原因:无可验证的测试结果或独立验证,可信度低。

1 2 3 4 5 6

点击维度查看打分理由

评估于 2026年8月7日 审查版本 1eb4b2602105 评估证据[1][2][3][4][5][6][7][8]

证据充分度:低 — 主要依赖静态检查、作者材料或有限演示;适合发现线索,不适合做高风险决策。

查看完整评分方法 →

常见问题

这个技能会替代我现有的测试库(如 testify)吗?
不会。技能不强制使用任何特定库。它侧重于通过表驱动测试和标准库实践来构建测试结构和场景。
这个技能可以用来测试非 Go 项目吗?
不能。它专门针对 Go 测试,包括 Bubbletea TUI。
如果我的项目不使用 Bubbletea,这个技能还有用吗?
仍然有用。核心表驱动测试、t.TempDir() 和黄金文件模式适用于任何 Go 项目。
更新黄金文件是自动的吗?
不是。需要明确运行 `go test -update` 来更新输出,然后重新运行测试验证。

同仓库的其他 Skills

均来自 Gentleman-Programming/gentle-ai

相关 Skills