开发与工程 ci-pipelinetestingsmoke-testjunit5playwrightgithub-actionsmakefilespring-boot

SkillHub 测试与 CI 规范

为 SkillHub 后端、前端、冒烟测试和 CI 流水线提供强制的测试约定与质量门禁,确保代理编写的测试符合项目规范。

FollowSkills 评估 · FSRS-2.0
不推荐
47/ 100 五分制 2.4 / 5
1 2 3 4 5 6
1信任安全12 / 25 · 2.4/5

证据: SKILL.md 提供了详细的测试和 CI 指南,包括明确禁止某些命令,并强调使用 Makefile 目标以确保正确的构建顺序。提供了 staging 环境和检查清单,暗示对质量的重视。没有发现恶意或过度越权行为。发布者未经验证,但身份未知不作为降分依据。扣分: 技能没有明确要求用户确认或提供数据流透明度;权限模型未详细说明;回滚和恢复机制未提及。因此信任评分为 12。

2可靠稳定8 / 20 · 2.0/5

证据: SKILL.md 提供了关于测试命令、工具和命名约定的详细说明,逻辑自洽,并提供了有用的失败反馈(如避免直接运行 mvnw 的理由)。仓库包含 CI 工作流文件,但未包含专门针对该技能关键路径的测试套件或验证执行。扣分: 由于是静态审查,无法验证关键路径的可操作性;错误处理和边界情况覆盖有限;测试文件和预期结果未在 SKILL.md 中直接提供,导致可靠性评分 8。

3适用触发8 / 15 · 2.7/5

证据: 技能明确指出了适用场景(后端测试、前端测试、CI/CD、冒烟测试),并提供了具体的命令和路径。仓库支持中文(README_zh.md)并提供阿里云镜像,表明对中国用户环境的考虑。扣分: 环境的适配性(如海外服务依赖)未完全说明;边界和非适配范围未明确界定;触发条件基于关键词,可能误触发。因此适应性评分 8。

4规范维护9 / 15 · 3.0/5

证据: SKILL.md 结构清晰,提供了安装/依赖说明(如依赖 Maven 模块)、命令示例、命名规范和检查清单。使用 Apache-2.0 许可证。仓库提供了版本控制和变更日志(通过 git 历史)。扣分: 未提供故障排除章节,隐含假设(如已安装 Docker、Maven 等)未明确说明;维护责任和更新路径未具体化。因此惯例评分 9。

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

证据: SKILL.md 提供了明确的目标和命令,能指导用户完成测试和 CI 任务。但未提供实际输出示例或验证结果,边际价值未量化。扣分: 核心任务完成是合理的,但输出完整性和直接可用性证据不足;且作为静态审查,无法验证实际有效,因此有效性评分 6。

6证据核验4 / 10 · 2.0/5

证据: 仓库包含真实的 CI 工作流文件(如 claim-issue-reward.yml、deepwiki.yml),但未覆盖技能关键路径(即测试和 CI 自身)的可执行验证。SKILL.md 本身没有提供可复现的验证步骤或证据。扣分: 缺乏针对该技能的独立验证,且无第三方执行证据;静态审查限制下,评分上限为 5,此处为 4。

证据充分度: 评估于 2026年8月7日 审查版本 6e133c006e49
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 技能描述为内部测试和 CI 指南,但未包含实际测试用例或验证脚本,因此用户应自行验证命令的正确性。
  • 发布者身份未经核实,建议在实践中审查技能来源的可靠性。
  • 技能中提到的 CI 工作流和测试命令可能依赖于外部服务(如 GitHub Actions),在中国大陆访问可能受限,请确认网络环境。
查看完整评分方法 →

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

本技能定义了 SkillHub 的测试与持续集成(CI)规范,涵盖后端(JUnit 5 + Mockito + AssertJ + Spring Boot 测试切片)、前端(Vitest 单元测试、Playwright 端到端测试)以及冒烟测试脚本。代理在修改测试、CI/CD 工作流或添加冒烟/端到端测试时自动触发。技能强调使用 Makefile 目标(如 `make test-backend-app`)而不是直接运行 Maven 命令,并提供了预 PR 检查清单,包括 `make staging` 验证容器化部署。它还包括 CI 流水线中 GitHub Actions 工作流的详细表格,以及各类测试的命名约定。

该技能规定了测试文件的组织方式(例如后端测试位于 server/*/src/test/java/,前端 E2E 测试位于 web/e2e/),并指定所需工具(JUnit 5、Mockito、AssertJ、Spring Boot 测试切片、Vitest、Playwright)。它提供测试和构建命令(如 make test-backend-appmake test-frontendmake test-e2e-smoke-frontend),并警告不要直接运行 ./mvnw -pl skillhub-app clean test。它列出了冒烟测试脚本及其目的(基本 API、命名空间、治理、提升),并定义了 CI 工作流(如 pr-tests.ymlpr-e2e.yml)。此外,它还指定了测试命名约定(例如 {ControllerName}Test.java),并提供了预 PR 检查清单,包括 make generate-apimake staging

  1. 当在 `server/` 中添加或修改后端测试时,代理应遵循本技能以确保测试位于正确的模块并遵守命名约定。
  2. 当修改前端测试或添加 Playwright E2E 测试时,代理应使用本技能中的 `make test-frontend` 和 `make test-e2e-frontend` 命令。
  3. 当添加新的冒烟测试或修改现有冒烟测试(例如 `scripts/smoke-test.sh`)时,代理应参考脚本和预期用途的表格。
  4. 当修改 GitHub Actions 工作流或 CI/CD 配置时,代理应遵循本技能来了解触发器、目的以及所有工作流的位置。
  5. 在提交 PR 之前,代理应使用预 PR 检查清单验证通过 `make test-backend-app`、`make typecheck-web` 和 `make staging`。

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

优点
  • 提供详细且明确的测试约定,包括命名约定和工具。
  • 包含运行时验证的预 PR 检查清单。
  • 提供冒烟测试脚本及其目的的清晰概述。
  • 包括 CI 工作流的良构表格,便于快速参考。
局限
  • 高度特定于 SkillHub 项目;它定义了该仓库的约定,而非通用测试技能。
  • 仅涵盖向后端/前端/CI 修改的场景;不提供一般测试策略或最佳实践。
  • 依赖项目特定的 Makefile 目标;如果不调整,则无法直接在其他项目中复用。
  • 未包含自身的测试套件或针对其他平台的验证证据。

如何安装这个 Skill?

该技能作为 SkillHub 仓库的一部分提供,位于 .agents/skills/testing-and-ci/SKILL.md。要安装它,请将此文件夹复制到代理的技能目录中,或确保代理能够访问该仓库。针对整个平台的官方安装指南并未包含在提供的文档中。

如何使用这个 Skill?

当需要代理遵循测试或 CI 约定时,可使用此技能。技能的触发条件包括添加或修改测试、更改 CI/CD 工作流、添加冒烟测试或端到端测试。例如,您可以提示:“为我刚才修改的后端模块编写单元测试,遵循 testing-and-ci 技能中的约定。”然后代理应阅读 SKILL.md 并应用规则,例如使用 make test-backend-app 运行测试。

常见问题

我需要有完整的 SkillHub 仓库才能使用此技能吗?
该技能旨在用于 SkillHub 仓库内部;它引用的是该仓库的特定路径、Makefile 目标和脚本。虽然在通用代理技能目录中可以将其用作参考,但其指令大多特定于仓库。
如果我直接运行 `./mvnw -pl skillhub-app clean test` 会发生什么?
由于 skillhub-app 依赖同级模块,直接运行此命令可能导致构建使用本地 Maven 仓库中的过期工件,从而导致误导性的 `cannot find symbol` 或签名不匹配错误。请改用 `make test-backend-app`。
此技能有哪些阶段验证?
它包含 `make staging` 命令,该命令构建后端 Docker 镜像、前端静态文件并运行冒烟测试。它还会在 http://localhost 和 http://localhost:8080 上保留环境。
此技能是否涵盖非 Spring Boot 或非 React 项目的测试?
否,该技能专门针对 SkillHub 的技术栈:用于后端的 Spring Boot (Java 21),用于前端的 React 19 + TypeScript。它没有提供通用测试方法论。

同仓库的其他 Skills

均来自 iflytek/skillhub

相关 Skills