SuperAPI AI 工具集

ort-test

测试与质量

查看项目

更新于 10-16 00:31

技能介绍

用途:在 ONNX Runtime 仓库中运行测试、调试测试失败、查找并执行特定测试用例。

主要能力:C++ 侧使用 Google Test,核心测试可执行文件为 onnxruntime_test_all(框架、图、优化器、会话)与 onnxruntime_provider_test(各执行提供者的算子/内核测试)。注意两个同名 attention_op_test.cc:test/providers/cpu/llm/ 下为 ONNX 域 Attention(套件 AttentionTest.),test/contrib_ops/ 下为 contrib MultiHeadAttention/GroupQueryAttention(套件 ContribOpAttentionTest.),二者都编入 onnxruntime_provider_test。Python 侧优先 unittest,也可用 pytest。

使用方式:始终在构建输出目录运行,否则可能找不到依赖。Linux:cd build/Linux/Release 后执行 ./onnxruntime_provider_test --gtest_filter="TestName";macOS 路径为 build/MacOS/Release;Windows 为 build\Windows\Release 下的 .exe。也可用构建脚本:./build.sh --config Release --test(Windows 用 .\build.bat --config Release --test),前提是已成功构建。默认路径为 build/<Platform>/<Config>/,Visual Studio 多配置生成器下 config 可能重复出现,可用 --build_dir 自定义。找不到二进制时用 find build -name onnxruntime_provider_test -type f 或 Windows 的 Get-ChildItem 递归搜索。Python 示例:pytest onnxruntime/test/python/test_specific.py、pytest 文件::类::方法、pytest -k "test_keyword" 目录。

适用场景:定位并运行单个或子集测试、排查失败、验证改动。

限制与注意事项:运行前激活 Python 虚拟环境;输出可能很大,建议重定向到文件;C++ 测试前确认构建目录存在且已完成构建;全量套件过慢时用 --gtest_filter 缩小范围。警惕假绿:零匹配过滤器仍返回 0(需确认实际运行测试数非零);增量构建的陈旧二进制;检查了错误产物的新鲜度(如 dlopen 的 provider .so);正确回退路径掩盖目标路径;仅在单一 GPU 架构验证的架构可移植性假绿。验证实际执行路径时可开启详细日志检查调度日志行,或强制路径并加编译期守卫使测试 SKIP。Linux 无 GPU 跑 WebGPU 测试可参考 webgpu-local-testing 技能。