web-dev-qa-db-de.com

Luftstrom-Python-Gerätetest?

Ich möchte einige Unit-Tests für unsere DAGs hinzufügen, konnte aber keine finden. Gibt es einen Rahmen für den Komponententest für DAGs? Es gibt ein End-to-End-Testframework, aber ich denke, es ist tot: https://issues.Apache.org/jira/browse/AIRFLOW-79 Bitte schlage vor, Danke!

18
Chengzhi

Testen Sie Ihre Bediener so:

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')

Quelle

9
Beau Barker

Zur Zeit konnte ich nichts Besseres finden als einfach 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,
    )
1
Ikar Pohorský