已合并
feat: 新增 --append/-a 选项支持追加结果到已有CSV #131
FishPotatoChen创建于 7 天前
feat: 新增 --append/-a 选项支持追加结果到已有CSV #131
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 FishPotatoChen 的贡献)7 天前 创建了 pull request,commit 5c512fa0
atomgit-bot
7 天前 评论:
7 天前 评论:
变更摘要
本 PR 为 TTK 结果输出新增 --append / -a 选项,使测试结果可以追加写入已有 CSV 文件,避免多次运行时反复覆盖历史结果。核心逻辑是:在 ttk/cli/common.py 中通过互斥参数组声明 -o/--output 与 -a/--append 互斥;在 ttk/cli/bridge.py 中解析追加参数并设置开关;在 ttk/utilities/classes.py 的 SWITCHES 中新增 append_mode 字段;在 ttk/core_modules/infra/instance_base.py 中实现“表头匹配则追加、不匹配则覆盖”的写入策略,并补充输出目录自动创建。文档(SKILL.md、Task_Execution.md、任务执行.md)同步更新。
主要改动
- 新增
-a/--append互斥参数:ttk/cli/common.py使用add_mutually_exclusive_group()声明-o/--output与-a/--append互斥,同时指定时会报错。 - 解析追加参数并写入开关:
ttk/cli/bridge.py在args_to_switches()中判断args.append,将输出文件名设为追加目标并将sw.append_mode置为True,否则使用覆盖模式。 - 扩展
SWITCHES结构:ttk/utilities/classes.py在SWITCHES的字段列表及初始化中新增append_mode,默认值为False。 - 实现追加/覆盖写入策略:
ttk/core_modules/infra/instance_base.py在输出 CSV 初始化时,先自动创建父目录;追加模式下若文件非空且通过_read_existing_header()读出的表头与当前case_result_titles一致,则以a+模式追加并跳过表头写入,否则以w+覆盖并打印 warning。 - 补充表头读取辅助方法:
ttk/core_modules/infra/instance_base.py新增_read_existing_header(),读取已有 CSV 首行表头,并在UnicodeDecodeError、csv.Error、OSError等异常时返回None。


atomgit-bot
7 天前 评论:
7 天前 评论:
7 天前 添加了label:ai-co-authored
7 天前 添加了label:cann-cla/yes
此处折叠了106条消息 查看更多
2 天前 添加了label:lgtm
2 天前 关闭了关联的issue
2 天前 合入了pull request
当前PR是否有AI参与:
PR功能描述 / 为什么需要这个合入**:
为 TTK 结果输出新增
--append/-a选项,支持将测试结果追加写入已有 CSV 文件,避免多次运行时反复覆盖历史结果,便于累积对比。主要改动:
ttk/cli/common.py:新增-a/--append参数,与-o/--output互斥ttk/cli/bridge.py:解析 append 参数并设置append_mode开关ttk/utilities/classes.py:SWITCHES新增append_mode字段ttk/core_modules/infra/instance_base.py:实现追加逻辑——表头匹配则追加,不匹配则覆盖;同时补全输出目录自动创建该PR关联的issue
https://gitcode.com/cann/ops-test-kit/issues/84
希望检视人员了解:
-o与-a为互斥参数,同时指定会报错测试
-o覆盖写入行为不变-a在表头匹配时正确追加结果行-a在表头不匹配时回退为覆盖并打印 warning-o与-a同时指定时互斥报错文档更新
.claude/skills/ttk-how-run-test/SKILL.mddocs/Task_Execution.mddocs/任务执行.md类型标签