SuperAPI AI 工具集

add-unit-test

测试与质量

查看项目

更新于 10-15 22:41

技能介绍

用途:在 xLLM 仓库中新增或更新单元测试,适用于需要创建 C++/CUDA/NPU/MLU 测试、将测试放入 tests/ 并接入 CMake 的场景。

主要能力与流程:先检查生产代码和最近的现有测试;尽量让 xllm/ 下的生产路径与 tests/ 对应;若行为属于同一领域,优先扩展附近的 *_test.cpp 和 cc_test 目标;仅在提升隔离性、分离平台初始化或符合既有目录模式时新建测试源文件。编辑 xllm/ 下生产文件前需阅读项目风格指南 .agents/skills/code-review/references/custom-code-style.md,新测试代码同样遵循该 C++ 风格。新增测试文件、cc_test、平台专用测试或测试目录时,需阅读 xllm-test-patterns.md。C++ 测试文件用 *_test.cpp,CUDA 源测试用 *_test.cu;除非周边目录结构已要求,不要新建嵌套 test/ 或 tests/ 目录。通过 include(cc_test) 和 cc_test(...) 接入 CMake;源文件名相对当前测试目录,除非既有目标已对生产 .cpp 使用绝对路径;目标名以 _test 结尾。整个子目录为平台专用时,在父 CMakeLists.txt 中设置平台目录门控;混合目录中同时含通用与平台专用测试时,才使用目标级 if(USE_NPU)、if(USE_MLU)、if(USE_CUDA) 或生成器表达式。测试应针对可观察行为而非实现细节,覆盖变更涉及的正常、边界和错误路径;优先使用确定性输入、固定种子和小张量/数据结构;辅助函数除非被多个测试文件共享,否则放在匿名命名空间的文件局部;TEST/TEST_F 名称应清晰描述行为。

验证:完成后始终对变更的测试路径运行 git diff --check;移动或重命名测试后搜索陈旧文件名;运行本地可用的最窄构建/测试命令,若不可行需说明确切原因及替代检查内容。

常用命令:rg --files tests/<area>;rg "old_test_name|old_file_name" tests xllm CMakeLists.txt;git diff --check -- tests/<area>。开发机上的完整远程验证需按仓库 AGENTS 说明使用 SSH、容器、构建和测试命令。

限制:资料未提供具体测试框架版本、依赖安装方式及完整远程验证命令细节。