首页 > 解决方案 > dbt 关系测试编译错误:测试定义字典必须只有一个键

问题描述

我是dbt的新用户,正在尝试写一个关系测试:

- name: PROTOCOL_ID
  tests:
    - relationships:
    to: ref('Animal_Protocols')
    field: id

我收到此错误:

Compilation Error
Invalid test config given in models/Animal_Protocols/schema.yml:
test definition dictionary must have exactly one key, got [('relationships', None), ('to', "ref('Animal_Protocols')"), ('field', 'id')] instead (3 keys)
@: UnparsedNodeUpdate(original_file_path='model...ne)

同一个文件中的“唯一”和“非空”测试工作正常,但我有一个与“accepted_values”类似的错误。

我在 MacOS Big Sur 11.6 上使用带有 Snowflake 的 dbt cli 版本 0.21.0。

标签: dbt

解决方案


你很亲近!我 96% 确定这是一个缩进问题——使用 YAML 的第一痛点。解决方案是两者to和都field需要在relationships键下方缩进,而不是在同一级别。

有关示例,请参阅测试 dbt 文档页面

  - name: PROTOCOL_ID
    tests:
      - relationships:
          to: ref('Animal_Protocols')
          field: id

推荐阅读