# tests — 测试体系 ## 职责 对 `dw_base/` 下的代码(尤其是 UDF、utils、io、dq、pm 等模块)做自动化测试,保证重构与新开发不回退。 ## 目录 - `unit/` —— 单元测试。**无外部依赖**(不连真实 Spark 集群 / DB),Spark 相关用本地 `SparkSession` 或 mock - `integration/` —— 集成测试。连真实 Spark / MySQL / HDFS,验证端到端链路 - `conftest.py`(后续加)—— pytest fixtures:`fake_spark`、`tmp_hdfs`、`sample_df` 等 ## 入口 `pytest tests/unit` / `pytest tests/integration`。CI 只跑 unit(集成测试手动触发)。 ## 首批目标 1. `tests/unit/udf/test_spark_common_udf.py` —— 对 `dw_base/udf/common/spark_common_udf.py` 40 个函数的单测(本地 SparkSession,小样本 DataFrame) 2. `tests/unit/utils/` —— 对 `dw_base/utils/*` 的纯函数单测 3. `tests/unit/datax/` —— `dw_base/datax/job_config_generator.py` 配置生成单测 ## 依赖 - `pytest`(**待加入 `requirements.txt`**) - `pyspark==2.4.0`(已在 requirements.txt,版本对齐 CDH 6.3.2 parcel;集群运行时 HMS 通过 `SPARK_CONF_DIR=/etc/spark/conf` 下的 `hive-site.xml` 加载) - 对 UDF 单测:本地 SparkSession 即可跑,不需要集群 ## 状态 **骨架(未启动)**。本批仅建目录 + 本 README。 见 `kb/90-重构路线.md` 聚簇 D + §6。