[CI] Unit Tests收集失败 - 5个测试文件AttributeError+ImportError #906

Closed
opened 2026-07-26 08:32:08 +08:00 by xiaoxia · 0 comments
Owner

问题描述

Unit Tests在收集阶段就失败,5个测试文件报错。这是9个required check中唯一真正会阻断业务PR合入的check。

铁证

CI Run #11418 Job #60103 日志:

ERROR collecting tests/unit/test_generation_asset_usage.py
  E   AttributeError: __spec__
ERROR collecting tests/unit/test_recipe_use_cases.py
  E   AttributeError: __spec__
ERROR collecting tests/unit/test_schema_guard.py
  ImportError: cannot import name 'assert_auto_create_schema_allowed'
ERROR collecting tests/unit/test_validation_utils.py
  ImportError: cannot import name 'assert_auto_create_schema_allowed'
ERROR collecting tests/unit/test_worker_ingest.py
  E   AttributeError: __spec__

!!!!!!!!!!!!!!!!!!! Interrupted: 5 errors during collection !!!!!!!!!!!!!!!!!!!

链接:https://git.xiaoxiajianji.com/xiaoxia/xiaoxia-saas/actions/runs/11418/jobs/60103

影响评估

  • 业务体感:高。Unit Tests是唯一真正会阻断普通开发者PR合入的required check
  • PR侧成功率约50%,有一半的业务PR会被这个红灯拦住
  • 最近5/5次push全部失败

关键发现

  • 本地 pytest --collect-only 能成功收集4391个用例,无收集错误
  • 说明代码本身无语法错误,问题出在CI环境的Python路径/mock配置/依赖版本

修复方向

  1. 排查 AttributeError: __spec__ - 通常是mock模块与Python导入系统冲突
  2. 检查 assert_auto_create_schema_allowed 的导出路径是否正确
  3. 对比CI环境和本地环境的依赖版本差异
  4. 检查CI中PYTHONPATH设置
## 问题描述 Unit Tests在收集阶段就失败,5个测试文件报错。这是9个required check中唯一真正会阻断业务PR合入的check。 ## 铁证 CI Run #11418 Job #60103 日志: ``` ERROR collecting tests/unit/test_generation_asset_usage.py E AttributeError: __spec__ ERROR collecting tests/unit/test_recipe_use_cases.py E AttributeError: __spec__ ERROR collecting tests/unit/test_schema_guard.py ImportError: cannot import name 'assert_auto_create_schema_allowed' ERROR collecting tests/unit/test_validation_utils.py ImportError: cannot import name 'assert_auto_create_schema_allowed' ERROR collecting tests/unit/test_worker_ingest.py E AttributeError: __spec__ !!!!!!!!!!!!!!!!!!! Interrupted: 5 errors during collection !!!!!!!!!!!!!!!!!!! ``` 链接:https://git.xiaoxiajianji.com/xiaoxia/xiaoxia-saas/actions/runs/11418/jobs/60103 ## 影响评估 - **业务体感:高**。Unit Tests是唯一真正会阻断普通开发者PR合入的required check - PR侧成功率约50%,有一半的业务PR会被这个红灯拦住 - 最近5/5次push全部失败 ## 关键发现 - 本地 `pytest --collect-only` 能成功收集4391个用例,无收集错误 - 说明代码本身无语法错误,问题出在**CI环境的Python路径/mock配置/依赖版本**上 ## 修复方向 1. 排查 `AttributeError: __spec__` - 通常是mock模块与Python导入系统冲突 2. 检查 `assert_auto_create_schema_allowed` 的导出路径是否正确 3. 对比CI环境和本地环境的依赖版本差异 4. 检查CI中PYTHONPATH设置
xiaoxia self-assigned this 2026-07-26 08:52:02 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: xiaoxia/xiaoxia-saas#906