Я хотел бы добавить некоторые модульные тесты для наших DAG, но не смог найти их. Есть ли рамки для модульного теста для DAG? Существует сквозная инфраструктура тестирования, но я думаю, что она мертва: https://issues.apache.org/jira/browse/AIRFLOW-79. Пожалуйста, предлагайте, спасибо!
Испытание блока Python воздушного потока?
Ответ 1
Протестируйте своих операторов следующим образом:
class TestMyOperator(TestCase):
def test_execute(self):
dag = DAG(dag_id='foo', start_date=datetime.now())
task = MyOperator(dag=dag, task_id='foo')
ti = TaskInstance(task=task, execution_date=datetime.now())
result = task.execute(ti.get_template_context())
self.assertEqual(result, 'foo')
Ответ 2
В настоящее время я не смог найти ничего лучше, чем просто использовать BashOperator
:
with DAG('platform-test', start_date=datetime(2017, 8, 29)) as dag:
test_command = "python3 -m unittest --verbose {}".format(platform_test_fname)
op = BashOperator(
task_id="platform-test",
bash_command=test_command,
)