dbt单例测试配置标签后,执行指定标签测试却运行全部测试的问题
问题原因及解决办法
全局配置导致所有测试被打标签
你在dbt_project.yml里的tests: +tags: - except是全局配置,会给项目里所有测试(包括内置测试、其他自定义测试)自动加上except标签。这就导致执行dbt test -s tag:except时,所有测试都匹配该标签,自然会全部运行。缩小配置范围,精准打标签
解决办法有两种:- 直接删除
dbt_project.yml里的全局tests标签配置,只保留每个自定义测试文件顶部的{{ config(tags=["except"]) }},这样只有这些特定测试会带有except标签。 - 如果想通过项目配置批量设置,需要指定测试所在的路径,避免全局生效:
比如你的项目叫tests: 你的项目名称: 存放except测试的目录名: +tags: - exceptmy_dbt_project,测试放在tests/except_comparisons目录下,就把对应位置替换成这些名称,这样配置只会给该目录下的测试打标签。
- 直接删除
验证标签配置是否正确
可以执行dbt list -s test --output json命令,查看所有测试的标签信息,确认哪些测试被打上了except标签,快速排查标签范围是否符合预期。
内容的提问来源于stack exchange,提问作者unkind58
相关产品推荐
相关产品推荐

