Вопросы

Как проверить dag воздушного потока в unittest?

Я пытаюсь протестировать даг с более чем одной задачей в тестовой среде. Мне удалось протестировать отдельную задачу, связанную с дагом, но я хочу создать несколько задач в даге и выполнить первую задачу. Для тестирования одной задачи в даге использую

task1.run()

который исполняется. Но то же самое не работает, когда у меня много задач одна за другой в даге.

from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta


default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2015, 6, 1),
'email': ['[email protected]'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
# 'queue': 'bash_queue',
# 'pool': 'backfill',
# 'priority_weight': 10,
# 'end_date': datetime(2016, 1, 1),
}

dag = DAG('tutorial', default_args=default_args)

# t1, t2 and t3 are examples of tasks created by instantiating operators
t1 = BashOperator(
task_id='print_date',
bash_command='date',
dag=dag)

t2 = BashOperator(
task_id='sleep',
bash_command='sleep 5',
retries=3,
dag=dag)

t2.set_upstream(t1)

t1.run() # It is executing just first task.

Чтобы выполнить вторую задачу, мне нужно запустить t2.run (), что мне не нужно, поскольку я разрабатываю DAG. Как этого добиться?

Пытаюсь протестировать весь прогон дага. Если мы поместим приведенный выше код внутрь тестового оператора, он не сработает. Суть в том, что я готов протестировать весь прогон dag, который состоит из множества зависимых задач, с использованием pytest.   —  person mad_    schedule 25.04.2018

Читать:
Flask (непредвиденная ошибка при использовании Gunicorn

Возможный дубликат модульного теста Airflow Python?   —  person mad_    schedule 25.04.2018

Эта ссылка, указывающая на модульный тест Dag, включает только одну задачу. Я хочу протестировать весь даг, а не только одну задачу на даг. Надеюсь, это устранит путаницу.   —  person mad_    schedule 25.04.2018

что ты уже испробовал? Как выглядит тестовый код? А что насчет dag.run()?   —  person mad_    schedule 25.04.2018

Не знаю, почему не щелкнуло. простой dag.run () работает. Спасибо   —  person mad_    schedule 25.04.2018

dag.run () работает в воздушном потоке 1.7, но, похоже, не работает в 1.9   —  person mad_    schedule 21.06.2018

Посмотрите здесь: blog.godatadriven.com/testing-and-debugging-apache -воздушный поток   —  person mad_    schedule 25.03.2020

Похожие записи

composeEnhancers не является функцией в ReactJS

admin

Как запускать конвейер GitLab CI при каждом нажатии на GitHub?

admin

NestJS: API загрузки и обслуживания изображений

admin

Как я могу отправить эфир между двумя АККАУНТАМИ в remix IDE?

admin

Вызов защищенного веб-API Azure AD из Angular Frontend

admin

Как управлять уведомлениями о событиях для отдельных участников, а не для всей команды?

admin