Skip to main content

Test configurations


Tests can be configured in a few different ways:

  1. Properties within .yml definition (generic tests only, see test properties for full syntax)
  2. A config() block within the test's SQL definition
  3. In dbt_project.yml

Test configs are applied hierarchically, in the order of specifity outlined above. In the case of a singular test, the config() block within the SQL definition takes precedence over configs in the project file. In the case of a specific instance of a generic test, the test's .yml properties would take precedence over any values set in its generic SQL definition's config(), which in turn would take precedence over values set in dbt_project.yml.

Available configurations

Click the link on each configuration option to read more about what it can do.

Test-specific configurations

tests:  <resource-path>:    +fail_calc: <string>    +limit: <integer>    +severity: error | warn    +error_if: <string>    +warn_if: <string>    +store_failures: true | false    +where: <string>

General configurations

tests:  <resource-path>:    +enabled: true | false    +tags: <string> | [<string>]    +meta: {dictionary}


Add a tag to one test

If a specific instance of a generic test:

models:  - name: my_model    columns:      - name: id        tests:          - unique:              tags: ['my_tag']

If a singular test:

{{ config(tags = ['my_tag']) }}
select ...

Set the default severity for all instances of a generic test

{% test my_test() %}
    {{ config(severity = 'warn') }}
    select ...
{% endtest %}

Disable all tests from a package

tests:  package_name:    +enabled: false