测试
CPU 友好单元测试
推荐优先使用仓库当前提供的 CPU 友好 UT 入口,生成覆盖率与测试产物。
python -m pip install -r requirements.txt
python -m pip install -r requirements-test.txt
bash tests/run_UT_test.sh
默认生成的产物位于 tests/UT/ 目录,包括:
run_UT.logfinal.xmlcoverage.xmlhtmlcov/
仓库中的 tests/scripts/check_coverage.py 用于在 CI 中校验新增 Python 文件的覆盖率门禁。
全量测试入口
当环境具备 Ascend/NPU 运行栈时,可使用现有包装脚本执行全量或按模式测试:
bash tests/run_test.sh --all
可选参数:
--cpu_only--npu_only--all
LA 单算子精度测试
本章节介绍 MindIE SD 仓中 LA 算子的精度自测方式。
-
如需切换已安装版本,可先卸载当前 MindIE SD:
python -m pip uninstall mindiesd -
修改
tests/plugin/la_acc_prof.py文件,选择 Option 1 或 Option 2,通过加载test_la.csv或enumerated_cases.csv文件,测试 LA 算子在所设置 shape 下的精度。./tests/plugin/test_la.csv:设置了常用 SD 模型的输入 shape。enumerated_cases.csv:枚举的各种 shape。
-
完成修改后执行以下命令:
cd tests python plugin/la_acc_prof.py
运行成功后会在仓库目录下生成结果文件,记录 LA 和 FAScore 的相似度,可据此查看算子在目标 shape 下的精度表现。
测试编写规范
测试组织原则
tests/ 下的测试目录与 mindiesd/ 模块层次对应:
| 源码模块 | 对应测试目录 |
|---|---|
mindiesd/layers/ |
tests/layers/ |
mindiesd/cache/ |
tests/cache/ |
mindiesd/compilation/ |
tests/compilation/ |
mindiesd/quantization/ |
tests/quantization/ |
新增代码时,检查对应测试目录是否已有测试文件,并在其中追加或新建测试覆盖新功能。
测试性能规范
- 单个测试文件运行超过 500 秒时,应拆分为多个文件
- 优先复用已有的设备/模型加载,减少重复初始化开销
- CPU 友好的测试应优先使用
bash tests/run_UT_test.sh验证