SuperAPI AI 工具集

testing

测试与质量

查看项目

更新于 10-16 02:33

技能介绍

用途:这是 Megatron Bridge 项目的测试参考,用于说明其单元测试与功能测试的组织方式和运行约定。

目录布局:tests/unit_tests/ 存放快速、隔离、无需 GPU 的单元测试;功能测试位于 tests/functional_tests/launch_scripts/,按 h100 与 gb200 划分,各自含 active/(自动进入 CI)与 flaky/(从阻塞 CI 隔离)子目录。功能测试脚本命名为 {Tier}_{Description}.sh。

层级语义:L0 在每个 PR 与 main 推送及定时任务触发,失败会阻塞合并;L1 在 main 推送、定时任务和带 needs-more-tests 标签的 PR 触发并阻塞;L2 在定时任务、workflow_dispatch 和带 full-test-suite 标签的 PR 触发,触发时阻塞;flaky 仅在 test_suite=all 的手动调度中运行,失败仅作信息参考。H100 与 GB200 各有独立的 L0/L1/L2/flaky 任务。

本地运行:单元测试无需 GPU,uv run pytest tests/unit_tests/ -x -v,也可在 Docker 中执行;功能测试在 GPU 节点上直接运行对应启动脚本,如 bash tests/functional_tests/launch_scripts/h100/active/L0_Launch_training.sh。

新增测试:单元测试放在 tests/unit_tests/<domain>/test_<name>.py 并标记 @pytest.mark.unit,配置保持极小;通过 setattr 覆盖配置前需用 hasattr 校验字段存在。功能测试放在对应 active/ 目录,文件头写 # CI_TIMEOUT=<分钟>,命名带层级前缀并执行 chmod +x,最多使用 2 个 GPU。移动测试用 git mv 到 flaky/,删除测试直接删除脚本并提交。Pytest 约定包括使用 fixture、可用标记(unit、integration、system、acceptance、docs、skipduringci、pleasefixme)、多 GPU 测试显式设置 CUDA_VISIBLE_DEVICES,且始终使用 uv run python -m pytest。

限制:功能测试 GPU 资源有限,每个功能测试槽位都有实际成本,应优先使用单元测试;flaky 测试需待问题修复后再移回 active/。其他价格、收费等信息暂未提供。