DBT 용어로 일반 테스트라고도 하는 재사용 가능 테스트는 여러 상황에서 재사용할 수 있는 테스트입니다.
.sql
file in the tests/generic
project foldermodel_properties.yml
for each model that uses itAdd {% test testname(model, column_name) % }
대부분의 일반 테스트에서는 model과 column_name이라는 두 개체를 대체
이는 테스트 이름이 되는 Jinja 함수에 대한 인수로 처리
Add SQL query, with {{ object }}
substitutions
모델 인수를 테이블에 대한 Jinja 참조로 대체합니다.
유효성 검사를 위한 참조로 사용되는 column_name 인수는 일반적으로 where 절에 있습니다.
End the file with {% endtest %}
{% test check_gt_0(model, column_name) %}
select *
from {{ model }}
where {{ column_name }} > 0
{% endtest %}
model_properties.yml
version: 2
models:
- name: taxi_rides_raw
columns:
- name: tpep_pickup_datetime
tests:
- not_null
- name: total_fare
tests:
- check_gt_0
accepted_values
and relationships
{% test check_columns_unequal(model, column_name, column_name2) %}
select * from {{ model }}
where {{ column_name }} = {{ column_name2 }}
{% endtest %}
models:
- name: order
columns:
- name: order_time
tests:
- check_columns_unequal:
column_name2: shipped_time