iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
AI & Data

Airflow 是什麼? 能吃嗎 ? 數據水管工的超級蘑菇系列 第 23

[Day23] Airflow牙起來-Debug 和 Testing (2)

  • 分享至 

  • xImage
  •  

前言

昨天有用 airflow dags testairflow tasks test 測試執行,今天要試著用 pytest 模組來 testing , 關於安裝模組的方法,可以回到前面這一篇查看:
[day18] 急!在線等!求解20 點!Airflow 安裝 Python 模組

pytest 介紹

pytest 是 python 的一種單元測試框架,與 python 原來的 unittest 模組類似,但比 unittest 用起來更好上手、更簡單、資源更多,測試範例如下:

def test_function_returns_a():
	assert my_function(input) == 'a'
import pytest

def double(a):
   return a * 2

@pytest.fixture
def a():
   return 2

def test_double(a):
   assert double(a) == 4
  • 簡單的語法,只需要依靠 assert 就能實現測試

測試 Airflow DAG 範例

from datetime import datetime
import pytest
from airflow import DAG

@pytest.fixture
def test_dag():
    return DAG(
        dag_id = "test_dag",
        "start_date": datetime(2023, 10, 8)},
        schedule="@daily"
    )

Pytest 使用 fixture 裝飾器的方法,可以把測試 function 當作參數。大幅減少使用重複程式碼(不像是 unittest 模組)


上一篇
[Day22] Airflow牙起來-Debug 和 Testing (1)
下一篇
[Day24] 用 Amazon AWS 架設 Airflow 的方法
系列文
Airflow 是什麼? 能吃嗎 ? 數據水管工的超級蘑菇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言