SuperAPI AI 工具集

dbt-test

测试与质量

查看项目

更新于 10-16 06:46

技能介绍

用途:为 dbt 模型添加 schema 测试、单元测试和数据质量检查,用于数据完整性校验、在 schema.yml 中补充测试定义、编写单元测试、创建自定义测试、排查测试失败以及实践 dbt 测试驱动开发。不适用于:创建或修改模型 SQL(用 dbt-develop)、编写模型描述(用 dbt-docs)、排查编译或构建错误(用 dbt-troubleshoot)。

环境要求:Agent 为 builder 或 migrator,需要文件写入权限;使用 bash(运行 altimate-dbt 命令)、read、glob、write、edit、altimate_core_testgen、altimate_core_validate。

核心原则:测试失败是信息,不可在未理解原因前修改测试使其通过。失败可能意味着数据存在质量问题、测试预期错误或模型逻辑错误;修改测试预期需用户明确确认,不得悄悄削弱测试。

Schema 测试流程:先用 altimate-dbt columns --model <name> 与 altimate-dbt column-values --model <name> --column <col> 发现列与取值;读取已有 schema.yml;用 altimate_core_testgen 依据编译后的 SQL 与 schema 自动生成边界值、NULL 处理及边界场景断言,人工筛选后再按列模式套用测试规则;合并写入已有 schema.yml,避免重复;运行前用 altimate_core_validate 校验 SQL;最后用 altimate-dbt test --model <name> 或 altimate-dbt build --model <name> 运行。

单元测试:自动生成建议改用 dbt-unit-tests 技能。可参考 YAML 模式,给定 mock 输入行与期望输出行。

常见错误:对每一列都加 not_null(只应测试确实不应为空的列)、主键缺少 unique 测试、accepted_values 列表不完整、为通过而改测试、外键缺少 relationships 测试、对简单查询做单元测试。

参考指南包括 altimate-dbt 命令、schema 测试模式、单元测试指南、自定义测试。具体命令参数与完整 CLI 细节以官方文档为准。