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