testing - 气流测试模式 xcom 拉/推不工作
问题描述
我尝试通过气流 cli 命令测试 2 个任务test
`
第一个任务运行,自动将最后一个控制台推送到 xcom,我some value
在气流 GUI 中看到了预期的值
当我通过气流 cli 测试命令运行第二个任务时,我只得到 None 作为返回值,但正如我在这里读到的:如何测试使用 XCom的 Apache Airflow 任务它应该工作并且至少 xcom_push 显然工作,为什么不xcom_pull?
有人提示如何使其正常工作?提供上下文设置为 true。
示例代码:
t1 = BashOperator(
task_id='t1',
bash_command='echo "some value"',
xcom_push=True,
dag=dag
)
t2 = BashOperator(
task_id='t2',
bash_command='echo {{ ti.xcom_pull(task_ids="t1") }}',
xcom_push=True,
dag=dag
)
谢谢!
编辑:当我在没有测试模式的情况下运行代码(DAG)时,xcom_pull 工作正常
解决方案
据我所知,“测试”运行时不会将任何内容保存到元数据数据库中,这就是为什么当您运行拉取任务时,您会得到“无”结果,而当您实际运行 DAG 代码时,它可以工作。
您可以在测试第一个任务后直接查询元数据数据库以验证这一点。
推荐阅读
- slider - 能够使用滑块更改这些变量吗?
- python - 使用相等变量将两个列表合并为一个
- express - Jest 集成测试 Express REST API 与 Mongoose
- android - eglCreateWindowSurface() 只能使用 Surface、SurfaceView、SurfaceTexture 或 SurfaceHolder 的实例调用
- swift - UserDefaults to Image 代码构建,但运行时崩溃
- swift - 与泛型的关联类型一致的协议会产生编译器错误
- javascript - 如何传递模式类型:对象的关键规则
- python - 简单 Python/C API 测试中的 Nullptr 错误
- php - 检查数组中的所有值是否都在数据库中并存储不在新数组中的值
- c# - 如何使用实体框架中的 DBContext 获取在另一列中具有重复数据的所有 ID?