SuperAPI AI 工具集

write-sglang-test

测试与质量

查看项目

更新于 10-16 08:11

技能介绍

用途:该技能用于指导在 SGLang 仓库中编写和注册 CI/UT 测试,覆盖 CustomTestCase、CI 注册、服务器 fixture、模型选择、mock 测试与测试放置。

主要能力与规则:必须使用 CustomTestCase,禁止裸用 unittest.TestCase,以保证 setUpClass 失败时 tearDownClass 仍执行;tearDownClass 必须调用 terminate_and_kill_process_tree(cls.process) 优雅关闭服务器,不能只用 kill_process_tree,并做 hasattr/null 防御检查。非 kernel 测试放在 test/registered/<kind>/<subsystem>/,kind 为 unit、e2e、accuracy、perf 或 stress;kernel 测试放在 test/registered/kernels/{ops,benchmark}/<group>/。可继承 DefaultServerBase 等 fixture 复用服务器。mock 只针对慢速或外部依赖边界,断言须检查可观察结果、状态或错误,不能只断言 assert_called*。

模型与注册:单元测试用 register_cpu_ci;通用/后端无关测试用 DEFAULT_SMALL_MODEL_NAME_FOR_TEST(1B)配 register_cuda_ci;通用性能用 DEFAULT_MODEL_NAME_FOR_TEST(8B)。CUDA 用 stage + runner_config 生成套件名 {stage}-test-{runner_config},如 register_cuda_ci(est_time=80, stage="base-b", runner_config="1-gpu-small");nightly 用 stage="nightly" 且不设 nightly=True。仅当测试涉及 AMD/ROCm 或 NPU 代码路径时才加 register_amd_ci / register_npu_ci。

限制:现有约 290 个测试文件仍用旧式 kill_process_tree,不应照抄;套件列表以 test/run_suite.py 与 scripts/ci/runner_configs.yml 为准;JIT kernel 实现优先用 add-jit-kernel 技能;测试 PR 不得修改生产代码。