Prhub

#22298 [CI] Move manual-only nightly tests out of test/registered/

sgl-project/sglang · 作者 alisonshao · 合并时间 2026-04-08 12:03

分析状态 已生成
文件变更 3提交数 1 · 评论 2
代码增减 +0 / -12
run-ci test

执行摘要

将三个手动夜间测试文件从注册目录移至手动目录,修复 CI 测试收集错误。

根据PR body描述,这三个测试文件是'manual-only nightly tests'(仅手动执行的夜间测试),但被错误地放置在test/registered/目录中。该目录要求测试文件必须包含CI注册条目(通过register_cuda_ci()调用),否则collect_tests()函数会抛出ValueError: No CI registry found错误。此问题由PR #22288引入,本PR旨在修复该问题。

该PR值得快速浏览以了解CI测试目录结构规范,但不需深入分析代码逻辑。关注点在于理解test/registered/和test/manual/目录的区别:前者需要CI注册,后者用于手动执行。这对于维护CI测试套件的工程师有参考价值。

讨论亮点

由于该PR没有review评论,讨论部分为空。从提交历史和文件变更来看,这是一个直接的修复操作,没有引发技术讨论。

实现拆解

实现方案非常简单直接:

  1. 文件移动:将三个测试文件从test/registered/8-gpu-models/目录移动到test/manual/目录
  2. 注册移除:从每个文件中删除register_cuda_ci()导入语句和调用
  3. 无逻辑变更:测试文件的核心测试逻辑保持不变,仅移除了与CI注册相关的代码
文件 模块 状态 重要度
test/manual/test_deepseek_v31.py test-infrastructure renamed 3.0
test/manual/test_glm_46_fp8.py test-infrastructure renamed 3.0
test/manual/test_qwen3_235b.py test-infrastructure renamed 3.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

关键符号

register_cuda_ci

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

技术风险极低:

  1. 无回归风险:仅移动文件位置和删除注册代码,不修改任何测试逻辑
  2. 无性能影响:纯目录结构调整
  3. 无安全风险:不涉及安全相关代码
  4. 兼容性:保持向后兼容,测试文件功能不变
    唯一潜在风险是如果其他代码硬编码了这些测试文件的路径,但考虑到这是测试目录结构调整,且test/manual目录是标准位置,这种风险很小。

影响范围有限但重要:

  1. 对用户:无直接影响,这是内部CI基础设施调整
  2. 对系统:修复了CI测试收集错误,确保测试套件能正常运行
  3. 对团队:解决了由PR #22288引入的CI中断问题,恢复了夜间测试的正常执行能力
    影响程度:中等,修复了CI流水线中的关键错误,但仅限于测试基础设施层面
目录结构调整

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

执行摘要

本PR将三个大型模型(Qwen3-235B、DeepSeek-V3.1、GLM-4.6-FP8)的夜间测试文件从test/registered/8-gpu-models/移动到test/manual/目录,并移除其中的register_cuda_ci()调用,修复了由PR #22288引入的CI测试收集错误。这是一个纯粹的CI基础设施修复,不涉及任何测试逻辑变更,风险极低但确保了夜间测试套件的正常运行。

功能与动机

问题根源:PR #22288将这三个测试文件添加到了test/registered/目录,但该目录要求所有测试文件必须包含CI注册条目(通过register_cuda_ci()函数)。由于这些是"manual-only nightly tests"(仅手动执行的夜间测试),缺少注册信息导致collect_tests()函数抛出ValueError: No CI registry found错误。

解决思路:根据PR body描述,这些测试本应属于手动测试范畴,正确的存放位置是test/manual/目录。本PR通过简单的文件移动和注册代码移除,恢复了CI测试收集功能的正常工作。

实现拆解

变更集中在三个测试文件的移动和清理:

文件 原位置 新位置 关键变更
test_deepseek_v31.py test/registered/8-gpu-models/ test/manual/ 移除register_cuda_ci(est_time=5400, suite="nightly-8-gpu-common", nightly=True)
test_glm_46_fp8.py test/registered/8-gpu-models/ test/manual/ 移除register_cuda_ci(est_time=1800, suite="nightly-8-gpu-common", nightly=True)
test_qwen3_235b.py test/registered/8-gpu-models/ test/manual/ 移除register_cuda_ci(est_time=1800, suite="nightly-8-gpu-common", nightly=True)

每个文件的变更模式完全一致:

  1. 删除导入语句:from sglang.test.ci.ci_register import register_cuda_ci
  2. 删除注册调用:register_cuda_ci(...)
  3. 文件物理移动到test/manual/目录

测试逻辑、模型路径、参数设置等核心内容均保持不变。

评论区精华

该PR没有review评论,表明变更直接明了,无需技术讨论。从提交信息看,作者alisonshao和合并者Kangyan-Zhou都认可这是一个必要的修复。

风险与影响

技术风险

  • 极低风险:仅目录结构调整,无代码逻辑修改
  • 无回归风险:测试功能完全保留
  • 无性能影响:纯元数据操作
  • 唯一潜在风险是如果有代码硬编码了这些测试文件的原始路径,但考虑到这是标准测试目录结构调整,且test/manual是预期位置,这种可能性很小

影响分析

  • 对CI系统:修复了关键错误,确保测试套件能正常收集和执行
  • 对开发团队:解决了由#22288引入的CI中断问题,恢复了夜间测试能力
  • 对用户:无直接影响,这是内部基础设施维护

关联脉络

本PR是近期CI测试基础设施调整的一部分:

  1. 直接关联PR #22288:该PR更新H200/B200夜间测试模型时,错误地将这三个测试文件放入了test/registered/目录,引发了本PR要修复的问题。

  2. 相关PR #22297:在发现#22288的问题后,团队最初尝试了完全撤销该PR(#22297),但本PR提供了更精细的修复方案——仅移动文件而非完全回退。

  3. 更大的CI演进趋势:从近期历史PR可见,团队持续优化测试基础设施,包括:

    • 添加快速失败机制(#22284)
    • 优化测试资源使用(#22301)
    • 迁移测试数据集减少依赖(#21931)
      本PR延续了这一趋势,通过清晰的目录分离(registered vs manual)提升测试管理的规范性。

参与讨论