1.7 KiB
1.7 KiB
inclusion
| inclusion |
|---|
| always |
测试与验证环境规范(强制)
核心原则
AI 执行测试、验证、调试、一次性脚本时,必须使用与正式运行一致的参数环境。禁止因"只是测试"而省略配置、跳过 .env 加载、或使用不完整的参数集。
具体要求
- 环境变量必须完整加载:测试脚本必须通过
load_dotenv或等效方式加载根.env(及模块.env),不得假设"测试不需要路径配置" - 禁止空值回退到意外默认:如果某个必需参数(如
FETCH_ROOT、EXPORT_ROOT、PG_DSN)未加载到,应立即报错终止,而非静默使用空字符串或其他配置项的值 - cwd 必须与正式运行一致:ETL CLI 测试的
cwd应为apps/etl/connectors/feiqiu/;后端测试的cwd应为apps/backend/ - 不得为测试单独构造简化配置:除非用户明确要求隔离测试环境,否则一律使用
AppConfig.load()正常流程加载配置 - 数据库连接使用测试库:测试涉及数据库时,优先使用
test_etl_feiqiu/test_zqyy_app(通过TEST_DB_DSN环境变量),而非正式库
例外情况
以下场景允许偏离:
- 用户明确指定使用特定参数或简化环境
- 纯单元测试使用 FakeDB/FakeAPI(
tests/unit/task_test_utils.py),不涉及真实路径或连接 --dry-run模式下的 CLI 验证(但路径配置仍需完整)
背景
此规则源于实际事故:测试时 FETCH_ROOT 未正确加载,or 链回退到空字符串,导致时区值 Asia/Shanghai 被误用为文件路径,在项目目录下创建了垃圾目录 Asia/Shanghai/ODS_JSON_ARCHIVE/。