Airflow 如何运行测试中定义的气流DAG?

Airflow 如何运行测试中定义的气流DAG?,airflow,Airflow,我正在尝试编写一个测试用例,其中我: 实例化一组(Python)运算符(使用unittest.mock.patch修补它们的一些依赖项) 将这些操作符安排在DAG中 跑那狗 对各种模拟下游的调用进行断言 我从中看出,运行DAG并不像调用DAG那么简单。run-我应该实例化一个local\u客户机,并在该客户机上调用trigger\u DAG。但是,生成的代码,不接受任何允许我传入手动构造的DAG的参数-因此我看不到如何使用local\u client运行此DAG 我在这里看到了几个选项:

我正在尝试编写一个测试用例,其中我:

  • 实例化一组(Python)运算符(使用
    unittest.mock.patch
    修补它们的一些依赖项)
  • 将这些操作符安排在DAG中
  • 跑那狗
  • 对各种模拟下游的调用进行断言
我从中看出,运行DAG并不像调用
DAG那么简单。run
-我应该实例化一个
local\u客户机
,并在该客户机上调用
trigger\u DAG
。但是,生成的代码,不接受任何允许我传入手动构造的DAG的参数-因此我看不到如何使用
local\u client
运行此DAG

我在这里看到了几个选项:

  • 我可以在一个单独的文件夹中声明我的测试DAG,如
    DagModel.get_current(DAG_id).fileloc
    所指定,这样我的DAG将被
    trigger_DAG
    拾取并运行-但这似乎相当间接,而且我怀疑我是否能够从测试代码中干净地引用注入的模拟
  • 我可以直接调用
    api.common.experimental.trigger\u dag.\u trigger\u dag
    ,它有一个
    dag\u bag
    参数。名称中的
    实验性的
    ,以及带下划线的前缀方法名称都表明这是个坏主意
建议阅读。有关高级资料,请参阅和建议阅读。有关高级资料,请参阅和