What is a singular test?
- Custom data test
- Written as an SQL query
- Defined as
.sql
file in tests
directories
Example singular test
- Create a test to verify the
order_total
is greater than or equal to thesubtotal
SELECT *
FROM order
WHERE order_total < subtotal
- Remember, we're looking for the rows that fail the test. If the test returns rows, then the test is marked as failed.
- Save file as
assert_order_total_gte_subtotal.sql
관례적으로 이 파일의 이름은 assert로 시작합니다. test 디렉토리에 넣습니다.
Singular test with Jinja
- We can use Jinja in our tests
ref
function
- Others as appropriate
- dbt substitutes output when test is run
테스트가 실행될 때는 dbt가 해당 진자템플릿을 실제 쿼리로 전환합니다.
select *
from {{ ref('order') }}
where order_total < subtotal
- dbt 프로필이 변경되면 테스트하기 전에 프로젝트를 다시 실행해야합니다.
Test debugging
- Use a SQL editor to create the initial test query
- Place query in appropriate file
- Make sure to name the test uniquely
- Use the
dbt test --select <testname>
option
개발 속도를 높이기 위해서 해당 특정 테스트만 실행할 수 있습니다. 대규모 데이터 셋트를 얻고, 많은 테스트를 수행할 경우, 모든 테스트를 수행하는 데에 필요한 시간이 크게 늘어날 수 있습니다.
- Check any errors and update accordingly
테스트 순서
Example
- test 디렉토리 내에
assert_trip_duration_gt_0.sql
파일 생성
select *
from taxi_rides_raw
-- Complete the test on the following line
where tpep_pickup_datetime = tpep_dropoff_datetime
여행 시작 기간과, 여행 종료 기간이 같은 데이터에 대해 오류 발생시키는 테스트
dbt test --select assert_trip_duration_gt_0
- 결과 확인