# PR #21119 完整报告

- 仓库：`sgl-project/sglang`
- 标题：Update write-sglang-test skill: CUDA-only for common tests + prefer mock
- 合并时间：2026-03-22 13:54
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/21119

---

# 执行摘要
本次 PR 更新了 SGLang 测试编写技能文档，添加了两条新规则：后端无关测试仅注册 CUDA CI 和优先使用 mock 替代真实服务器，旨在提高 CI 效率和测试确定性。这属于文档维护，对测试开发有指导意义，但无运行时代码变更。

# 功能与动机
动机源于减少 CI 资源浪费和提升测试效率。根据 PR body，具体问题包括：后端无关测试（如 HTTP 中间件、abort、API 路由、配置解析）不应注册不必要的 AMD/CPU CI，以避免浪费 CI 时间；以及逻辑测试应优先使用 `unittest.mock.patch` 而非启动真实服务器，以加快速度、提高确定性并节省 GPU 时间。这解决了测试编写中的低效实践，引导开发者更聚焦于必要的测试覆盖。

# 实现拆解
实现仅涉及一个文件 `.claude/skills/write-sglang-test/SKILL.md`，关键拆解如下：
- **新增规则 7**：强调后端无关测试只注册 `register_cuda_ci`，不添加 `register_amd_ci` 或 `register_cpu_ci`。
- **新增规则 8**：提倡在不需要端到端推理的逻辑测试中使用 `unittest.mock.patch`，并提供了 mock 测试模板。
- **更新模型选择表格**：明确不同场景下的模型和 CI 注册策略，例如：
 | 场景 | 模型 | CI 注册 | 套件 |
 |------|------|--------|------|
 | 后端无关测试 | DEFAULT_SMALL_MODEL_NAME_FOR_TEST（1B） | register_cuda_ci only | stage-b-test-small-1-gpu |
- **重组内容**：通过 commit 历史（如 c36241f）合并重复规则，简化核心规则部分，提升文档可读性。

# 评论区精华
review 讨论较为简单，仅 gemini-code-assist[bot] 提供了正面反馈：
> "The changes are clear and I have no suggestions for improvement."

这表明变更被认可，无争议点或深入技术交锋，讨论已快速解决。

# 风险与影响
**风险**：
- 低风险，因为仅文档更新，无代码逻辑改动。
- 潜在风险包括开发者误解新指南，导致测试覆盖不足或编写错误测试，例如过度使用 mock 可能遗漏真实服务器问题。
- 文件 `.claude/skills/write-sglang-test/SKILL.md` 的变更需确保与现有代码实践一致，避免脱节。

**影响**：
- 对用户：无直接影响，但间接通过更高效的 CI 流程可能提升开发体验。
- 对系统：优化 CI 资源使用，减少不必要的 GPU 消耗，可能降低 CI 运行时间和成本。
- 对团队：引导开发者采用更优测试策略，促进团队测试规范统一。

# 关联脉络
与近期历史 PR 的关联显示，仓库正持续完善测试文档：
- **PR #21130**：同样修改同一技能文件，添加单元测试指南，与本 PR 协同更新测试编写规范。
 - 其他 PR 如 #20625（修复 abort 测试 bug）和 #20697（修复 VRAM 泄漏）涉及具体测试实现，但本 PR 更侧重指南层面，反映了从具体 bugfix 到整体测试策略优化的演进趋势。