fix(ci): 增量测试选择脚本过滤已删除的测试文件 #610
Reference in New Issue
Block a user
Delete Branch "fix/incremental-test-deleted-files"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
删除测试文件时,增量测试选择脚本(select_unit_tests.py)会把已删除的文件加入运行列表,导致pytest报
file or directory not found错误并退出(exit code 4)。触发场景:#608 删除了 test_generation_feature_flag.py,但增量脚本仍尝试运行它。
修复
在将改动的测试文件加入 selected 列表前,检查文件是否存在。已删除的测试文件跳过,不加入运行列表。
影响范围
CI 增量测试选择逻辑,不影响业务代码。
📊 审查概览
❌ 需修改的问题(严重)
无
💡 改进建议(一般)
[scripts/ci/select_unit_tests.py: 161] 性能优化建议
Path.exists()会产生 I/O 开销。虽然对于单元测试文件数量通常较少,影响有限,但从最佳实践角度,建议在生成changed_files列表时(例如通过git diff命令),直接使用--diff-filter=d参数过滤掉已删除的文件。这样可以避免在 Python 代码中进行文件系统检查,效率更高且逻辑解耦更彻底。[scripts/ci/select_unit_tests.py: 164] 日志规范建议
logging模块代替print语句。使用logging可以更灵活地控制日志级别(如 INFO, DEBUG),便于在 CI 环境中统一管理和过滤日志输出。✅ 良好实践
exists()),有效防止了尝试运行已不存在的测试文件,逻辑严谨。🤖 由 AI 代码审查机器人自动生成 | 2026-07-19 19:50:07 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #610 已关闭或合并,对应的预览环境已被清理。