已关闭
[Requirement|需求建议]: 实现UT精准触发机制,优化CI测试效率 #33
chenma创建于  5月6日关闭于  5月7日
chenma成员
5月6日 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Backgroud(背景信息)

当前CI流程中,ut_cpp和ut_python任务无论PR修改内容如何,都会执行全量测试。这导致:

  1. 仅修改文档、配置文件等非源码文件时,仍执行全量测试,浪费CI资源
  2. 仅修改某一模块代码时,执行全量测试,测试时间长

1. 白名单机制

非源码文件修改应跳过测试:

  • 文档文件(docs/、.md、.txt)
  • 配置文件(.github/、.clang-format)
  • 其他非代码文件(LICENSE、README、images/等)

2. 精准触发机制

根据修改文件决定执行哪些测试:

  • C++模块:lib/Target/AscendC/[Adv,Basic,Core,External,Fwk] 各模块独立触发
  • Python模块:python/asc/[language,lib,codegen,runtime] 各模块独立触发
  • 核心路径(include/.bin/、MakeLists.txt):触发全量测试
  • 未知路径:安全兜底,触发全量测试

3. 测试跳过标识

当测试不需要执行时:

  • build_llt.sh 使用 exit 200 标识跳过状态
  • CI脚本识别 exit 200 并跳过覆盖率生成流程

4. 参数支持

新增 -f|--filelist 参数,传入PR修改文件列表用于分析

期望效果

场景 当前行为 期望行为
修改 docs/README.md 全量测试(约30分钟) 跳过测试(exit 200)
修改 lib/Target/AscendC/Adv/*.cpp 全量测试 仅执行Adv模块测试

Origin(信息来源)

内部CIE

Benefit / Necessity (价值/作用)

优化CI UT时间

Design(设计方案)

修改 test/build_llt.sh

  1. 添加白名单配置 NO_TEST_WHITELIST
  2. 实现文件分析函数 analyze_pr_filelist()
  3. 修改测试执行函数 run_check_asci()run_python_ut() 支持精准测试
  4. 修改 build_test() 函数支持测试跳过逻辑(exit 200)

CI脚本配合修改:识别 exit 200 并跳过覆盖率生成。

likedislike
Cchenma成员
5月6日 添加了label:requirement
Cchenma成员
5月6日 将 chenma 设为负责人
chenma成员
5月7日 评论:

该特性相关修改已合入,issue关闭。

likedislike
Cchenma成员
5月7日 issue状态由 进行中 改变为 已完成
Cchenma成员
5月7日 关闭了 issue
CANN-robotCANN-robot成员
5月7日 添加了label:resolved