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那么简单。run
-我应该实例化一个local\u客户机
,并在该客户机上调用trigger\u DAG
。但是,生成的代码,不接受任何允许我传入手动构造的DAG的参数-因此我看不到如何使用local\u client
运行此DAG
我在这里看到了几个选项:
- 我可以在一个单独的文件夹中声明我的测试DAG,如
所指定,这样我的DAG将被DagModel.get_current(DAG_id).fileloc
拾取并运行-但这似乎相当间接,而且我怀疑我是否能够从测试代码中干净地引用注入的模拟trigger_DAG
- 我可以直接调用
,它有一个api.common.experimental.trigger\u dag.\u trigger\u dag
参数。名称中的dag\u bag
,以及带下划线的前缀方法名称都表明这是个坏主意实验性的