Files
Neo-ZQYY/.kiro/steering/testing-env.md

1.7 KiB
Raw Permalink Blame History

inclusion
inclusion
always

测试与验证环境规范(强制)

核心原则

AI 执行测试、验证、调试、一次性脚本时,必须使用与正式运行一致的参数环境。禁止因"只是测试"而省略配置、跳过 .env 加载、或使用不完整的参数集。

具体要求

  1. 环境变量必须完整加载:测试脚本必须通过 load_dotenv 或等效方式加载根 .env(及模块 .env),不得假设"测试不需要路径配置"
  2. 禁止空值回退到意外默认:如果某个必需参数(如 FETCH_ROOTEXPORT_ROOTPG_DSN)未加载到,应立即报错终止,而非静默使用空字符串或其他配置项的值
  3. cwd 必须与正式运行一致ETL CLI 测试的 cwd 应为 apps/etl/connectors/feiqiu/;后端测试的 cwd 应为 apps/backend/
  4. 不得为测试单独构造简化配置:除非用户明确要求隔离测试环境,否则一律使用 AppConfig.load() 正常流程加载配置
  5. 数据库连接使用测试库:测试涉及数据库时,优先使用 test_etl_feiqiu / test_zqyy_app(通过 TEST_DB_DSN 环境变量),而非正式库

例外情况

以下场景允许偏离:

  • 用户明确指定使用特定参数或简化环境
  • 纯单元测试使用 FakeDB/FakeAPItests/unit/task_test_utils.py),不涉及真实路径或连接
  • --dry-run 模式下的 CLI 验证(但路径配置仍需完整)

背景

此规则源于实际事故:测试时 FETCH_ROOT 未正确加载,or 链回退到空字符串,导致时区值 Asia/Shanghai 被误用为文件路径,在项目目录下创建了垃圾目录 Asia/Shanghai/ODS_JSON_ARCHIVE/