fix(ci): 增量测试选择脚本过滤已删除的测试文件 #610

Merged
auto-approve-bot merged 1 commits from fix/incremental-test-deleted-files into develop 2026-07-19 19:54:44 +08:00
Owner

问题

删除测试文件时,增量测试选择脚本(select_unit_tests.py)会把已删除的文件加入运行列表,导致pytest报file or directory not found错误并退出(exit code 4)。

触发场景:#608 删除了 test_generation_feature_flag.py,但增量脚本仍尝试运行它。

修复

在将改动的测试文件加入 selected 列表前,检查文件是否存在。已删除的测试文件跳过,不加入运行列表。

影响范围

CI 增量测试选择逻辑,不影响业务代码。

## 问题 删除测试文件时,增量测试选择脚本(select_unit_tests.py)会把已删除的文件加入运行列表,导致pytest报`file or directory not found`错误并退出(exit code 4)。 触发场景:#608 删除了 test_generation_feature_flag.py,但增量脚本仍尝试运行它。 ## 修复 在将改动的测试文件加入 selected 列表前,检查文件是否存在。已删除的测试文件跳过,不加入运行列表。 ## 影响范围 CI 增量测试选择逻辑,不影响业务代码。
xiaoxia added 1 commit 2026-07-19 19:47:54 +08:00
fix(ci): 增量测试选择脚本过滤已删除的测试文件
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 8s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 15s
AI Code Review / AI Code Review (pull_request) Successful in 2m12s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m58s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 4m22s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m55s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m51s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 5m46s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 6m46s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 17s
128b7e5a93
删除测试文件时,增量测试选择脚本会把已删除的文件加入运行列表,
导致pytest报'file or directory not found'错误并退出。
添加存在性检查,跳过已删除的测试文件。
Collaborator

📊 审查概览

  • 整体评价:通过
  • 严重问题数量:0 个
  • 一般建议数量:2 个

需修改的问题(严重)

💡 改进建议(一般)

  1. [scripts/ci/select_unit_tests.py: 161] 性能优化建议

    • 具体内容:在循环中频繁调用 Path.exists() 会产生 I/O 开销。虽然对于单元测试文件数量通常较少,影响有限,但从最佳实践角度,建议在生成 changed_files 列表时(例如通过 git diff 命令),直接使用 --diff-filter=d 参数过滤掉已删除的文件。这样可以避免在 Python 代码中进行文件系统检查,效率更高且逻辑解耦更彻底。
  2. [scripts/ci/select_unit_tests.py: 164] 日志规范建议

    • 具体内容:建议使用标准库 logging 模块代替 print 语句。使用 logging 可以更灵活地控制日志级别(如 INFO, DEBUG),便于在 CI 环境中统一管理和过滤日志输出。

良好实践

  • 边界条件处理:代码显式检查了测试文件是否已被删除(exists()),有效防止了尝试运行已不存在的测试文件,逻辑严谨。
  • 代码可读性:新增的注释清晰地解释了修改意图(仅保留仍存在的文件),有助于后续维护。

🤖 由 AI 代码审查机器人自动生成 | 2026-07-19 19:50:07 | 模型:

### 📊 审查概览 - 整体评价:通过 - 严重问题数量:0 个 - 一般建议数量:2 个 ### ❌ 需修改的问题(严重) 无 ### 💡 改进建议(一般) 1. **[scripts/ci/select_unit_tests.py: 161] 性能优化建议** - 具体内容:在循环中频繁调用 `Path.exists()` 会产生 I/O 开销。虽然对于单元测试文件数量通常较少,影响有限,但从最佳实践角度,建议在生成 `changed_files` 列表时(例如通过 `git diff` 命令),直接使用 `--diff-filter=d` 参数过滤掉已删除的文件。这样可以避免在 Python 代码中进行文件系统检查,效率更高且逻辑解耦更彻底。 2. **[scripts/ci/select_unit_tests.py: 164] 日志规范建议** - 具体内容:建议使用标准库 `logging` 模块代替 `print` 语句。使用 `logging` 可以更灵活地控制日志级别(如 INFO, DEBUG),便于在 CI 环境中统一管理和过滤日志输出。 ### ✅ 良好实践 - **边界条件处理**:代码显式检查了测试文件是否已被删除(`exists()`),有效防止了尝试运行已不存在的测试文件,逻辑严谨。 - **代码可读性**:新增的注释清晰地解释了修改意图(仅保留仍存在的文件),有助于后续维护。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-19 19:50:07 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot approved these changes 2026-07-19 19:53:42 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-19 19:53:43 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit f5581ac3da into develop 2026-07-19 19:54:44 +08:00
auto-approve-bot deleted branch fix/incremental-test-deleted-files 2026-07-19 19:54:44 +08:00

🗑️ 预览环境已清理

PR #610 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #610 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.