Prhub

#21202 docs: improve CI and testing documentation

原始 PR 作者 merrymercy 合并时间 2026-03-24 01:48 文件变更 119 提交数 16 评论 4 代码增减 +519 / -809

执行摘要

改进 CI 和测试文档,提供清晰指导并修复相关测试文件。

根据 PR body,主要动机是 'improve documentation for CI and tests',特别是在 test/README.md 中提供更清晰的指导,使开发者能更容易理解测试和 CI 故事,并支持相关的工作流可读性更新。

该 PR 值得快速浏览,特别是 test/README.md 的更新,对于理解项目 CI 结构和测试指南有直接帮助。代码变更部分如 sys.exit 修复和路径调整值得关注,可检查类似问题在其他地方是否已解决。对于技术管理者,可参考文档改进作为最佳实践。

讨论亮点

review 中核心讨论是关于 pytest.main() 的正确使用:gemini-code-assist[bot] 指出 'pytest.main() returns an exit code but does not exit the process',建议使用 sys.exit() 以确保 CI 正确捕获测试失败,作者 merrymercy 确认在提交 ad8bd382c 中修复了所有类似问题。此外,讨论还涉及 CI 脚本路径调整和 mock 机制的改进,但无重大争议。

实现拆解

实现分为三个部分:

1) 文档更新:test/README.md 大幅扩充,添加三阶段 CI 流水线示意图、测试套件表和本地运行指南。
2) CI 和脚本调整:将 AMD CI 相关脚本(如 ensure_vram_clear.sh)移动到 scripts/ci/amd/ 目录,更新 .github/workflows/ 文件中的路径引用。
3) 测试文件修复:在 87 个测试文件中添加 import sys 并用 sys.exit(pytest.main(...)) 包裹调用,修复 CPU 测试套件失败(如使用 register_fake_if_exists 改进 mock 机制),并移除未使用的实验运行器和比较工具(如 test/srt/experiment_runner.py)。

文件 模块 状态 重要度
test/README.md documentation modified 8.0
.github/workflows/pr-test-amd.yml ci modified 5.0
python/sglang/srt/mem_cache/hisparse_memory_pool.py mem_cache modified 6.0
test/run_suite.py test modified 5.0

关键符号

register_fake_if_exists pytest.main

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

评论区精华

pytest.main() 正确使用 正确性

gemini-code-assist[bot] 在 review 中建议将 pytest.main() 包装在 sys.exit() 中,以确保 CI 正确捕获测试失败,避免误报。

结论:作者 merrymercy 确认已在提交 ad8bd382c 中修复所有 87 个类似问题,并更新文档。 · 已解决

风险与影响

风险较低,具体包括:

1) CI 脚本路径变更(如 .github/workflows/pr-test-amd.yml 中的路径更新)可能导致现有工作流引用错误,需确保一致性。
2) 测试文件修改(如添加 sys.exit)可能引入语法错误或改变测试退出行为,影响 CI 报告准确性。
3) 移除未使用代码(如 test/srt/experiment_runner.py)可能意外影响遗留脚本或文档引用,需确认无依赖。

影响范围广泛:对开发者提供清晰的 CI 和测试文档,降低入门门槛,提升贡献效率;对 CI 系统通过修复测试执行问题(如 CPU 测试失败)增强稳定性和可靠性;对团队通过标准化测试套件和清理冗余代码提高维护效率。影响程度为中等,主要改善开发流程和文档,而非核心功能变更。

CI 脚本路径变更 测试执行方式变更 未使用代码移除

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论