3.3 KiB
3.3 KiB
phase, plan, wave, title, depends_on, files_modified, autonomous, requirements
| phase | plan | wave | title | depends_on | files_modified | autonomous | requirements | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 6 | 1 | 1 | 三平台数据解析函数单元测试(QUAL-02) |
|
true |
|
Phase 6 Plan 01: 三平台解析函数单元测试(QUAL-02)
Objective
为 app/services/ingest/configs/ 中的三平台 _extract_* 和 _build_*_push 函数
新增单元测试,覆盖正常字段和缺字段场景。
去重逻辑测试(dedup.py)已在 Phase 5 完成(6 个测试),本 Plan 仅补充解析函数测试。
Must Haves
tests/ingest/test_configs_boss.py:8 个测试,覆盖_extract_job_id、_extract_company_name、_build_boss_pushtests/ingest/test_configs_qcwy.py:10 个测试,覆盖_extract_job_id、_extract_update_dt、_extract_company_name、_build_qcwy_push(含 welfare 列表场景)tests/ingest/test_configs_zhilian.py:9 个测试,覆盖_extract_number、_extract_fpt、_extract_company_name、_build_zhilian_pushpipenv run python -m pytest tests/ingest/ -v --tb=short全部绿色(含原有 dedup 6 个)pipenv run python -m pytest tests/ -v全量通过
Wave 1
Task 1.1: tests/ingest/test_configs_boss.py
测试清单:
test_extract_job_id_from_jobBaseInfoVO— 正常嵌套字段test_extract_job_id_missing— 缺 jobBaseInfoVO → Nonetest_extract_company_name_from_name— data["name"] 直接取test_extract_company_name_from_companyFullInfoVO— 嵌套字段test_extract_company_name_missing→ Nonetest_build_boss_push_full— 完整字段,验证 source_type="Boss直聘"、url 含 encryptJobIdtest_build_boss_push_partial— 缺字段不 raise,返回合理降级值test_build_boss_push_none_data— 空 dict,关键字段为 None
Task 1.2: tests/ingest/test_configs_qcwy.py
测试清单:
test_extract_job_id_normaltest_extract_job_id_missing→ Nonetest_extract_update_dt_normaltest_extract_update_dt_missing→ Nonetest_extract_company_name_from_companyNametest_extract_company_name_from_company_name_fallbacktest_extract_company_name_missing→ Nonetest_build_qcwy_push_welfare_list— welfare 为对象列表,提取 chineseTitletest_build_qcwy_push_welfare_string— welfare 为字符串test_build_qcwy_push_partial— 缺字段 → 合理降级,source_type="前程无忧"
Task 1.3: tests/ingest/test_configs_zhilian.py
测试清单:
test_extract_number_normaltest_extract_number_missing→ Nonetest_extract_fpt_normaltest_extract_fpt_missing→ Nonetest_extract_company_name_from_companyNametest_extract_company_name_from_name_fallbacktest_extract_company_name_missing→ Nonetest_build_zhilian_push_skill_labels— skillLabel 列表,提取 valuetest_build_zhilian_push_partial— 缺字段降级,source_type="智联招聘"
Verification
# 运行新测试
pipenv run python -m pytest tests/ingest/ -v --tb=short
# 全量回归
pipenv run python -m pytest tests/ -v --tb=short
预期: 所有 27-30 个测试通过,全量 ≥ 130 个测试全绿