用途:为 dbt 模型自动生成单元测试,补充测试覆盖、创建 mock 数据、支持 dbt 的测试驱动开发,验证 CASE/WHEN、NULL 处理、JOIN 行为、聚合正确性及增量模型逻辑。不适用于添加 schema 测试、编写或修改模型 SQL、写描述、调试构建失败。
主要能力:通过 dbt_unit_test_gen 等工具解析 manifest 与血缘,生成含 mock 输入和预期输出的 YAML,并给出反模式与警告;要求每个 ref() 和 source() 都有 mock 输入,ephemeral 模型使用 sql 格式;mock 数据需覆盖各 SQL 构造的失败模式,如 LEFT JOIN 无匹配、COUNT 列含 NULL、除零、CASE 各分支、窗口分区边界、增量 merge 的插入与更新行等。
使用方式:先运行 altimate-dbt compile --model <name> 编译 manifest,读取模型 SQL,调用 dbt_unit_test_gen(manifest_path: "target/manifest.json", model: "<name>", max_scenarios: 5) 生成测试;用 altimate-dbt columns 或 columns-source 补全缺失列名;通过 altimate-dbt test --model <name> 或 altimate-dbt execute 计算并修正预期输出;最后将测试写入 _unit_tests.yml 或 schema.yml。
限制:预期输出不可猜测,需实际运行 SQL 计算,否则标记为待验证占位符;不得为通过而弱化测试;需在提交前编译验证;最多迭代 3 次;需要 builder 或 migrator 代理及文件写入权限。具体收费、价格与平台信息暂未提供。