选择器找不到"dbt测试"的节点



我正在尝试定义一个dbt-YAML选择器,这样我就可以为一组特定的模型运行模式测试。

YAML选择器看起来有点像:

selectors:
- name: test_selector
definition:
union:
- intersection:
- node+
- tag:tag1
- intersection:
- node+
- tag:tag2
- intersection:
- node+
- +tag:tag3
- intersection:
- node+
- +tag:tag4
- exclude:
- config.materialized:view
- config.materialized:materialized_view

该选择器描述了从单个节点上游到节点联合下游的节点选择,不包括视图和物化视图(在我们的dbt项目中自定义(。

使用此语法,我可以使用dbt ls --selector test_selector --output name成功列出此语法指定的节点,并使用dbt run --selector test_selector成功运行指定的模型,但同样的行为似乎不适用于dbt test

当我尝试dbt test --selector test_selector时,我收到输出

WARNING: Nothing to do. Try checking your model configs and model specification args

我希望与dbt test类似,此命令将运行与test_selector选择中指定的模型相关的所有测试,但事实并非如此。

似乎在语法概述中为dbt test指定了--selector标志,并且文档的测试选择示例部分提到";您可以使用选择器方法来检查正在测试的资源的配置属性;。没有任何在测试中使用--selector标志的例子,所以我不确定是否遗漏了什么。应该支持这种类型的语法吗?还是我误解了文档?谢谢

很高兴您使用了YAML选择器!

组合使用测试+config.materialized:view选择器时存在一个已知错误:https://github.com/fishtown-analytics/dbt/issues/2806.它100%局限于";视图";物化。给定选择器定义,它排除了所有config.materialized:view,当前行为是错误地排除所有测试。你没有做错什么;我们正在为dbt的下一个版本解决这个问题。

同时,如果可以以不同的方式指定该逻辑——例如,不排除所有视图物化模型,也不排除staging目录中的所有模型——我建议尝试一下。

最新更新