使用加载到静态文件中的不同环境变量来测试多个 pyspark 管道

问题描述 投票:0回答:1

好的,我有一个问题- 背景信息:我是一名新 QA,在一个使用 pyspark 作为 ETL 引擎的团队中工作。 我使用 pytest 作为我的测试框架。

我们在同一个仓库中有多个管道(ETL,从现在开始我将使用这个术语)。 当然,我们在运行管道时使用环境变量(我们通过气流注入它们)。 问题是 - env 变量被加载到 python 变量中,加载到“RUN ENV”文件中,该文件是所有管道的全局文件。 为什么这是一个问题?

当我通过 CI 测试整个存储库时,运行的第一个管道测试会初始化环境变量(通过 conftest.py),然后将它们依次加载到 RUN ENV 中。

这会导致一个恼人的情况当管道完成运行时, 新的开始了:RUN ENV 已经使用我配置的初始环境变量进行了设置,现在应该为下一个管道进行不同的配置! 我可以在每次 e2e 测试之前重新配置 RUN ENV 中的每个变量(根据当前加载的conftest),但这似乎是错误的。 我知道 RUN ENV 的使用是合法的:通常只有一个管道从存储库中调用。但是我怎样才能以一种简洁的方式解决这个问题,以使一切都干净合理,以便可以在每个其他测试中重新配置 RUN ENV?或者也许有不同的定义,这样这个问题就不重要了?

我尝试将很多代码与运行环境文件解耦,尽管我不应该真正接触纯源代码 尝试将 env 放入固定装置中,而不仅仅是放入 conftest 中,但只要 run env 加载得太快,它实际上并不能解决问题

python pyspark environment-variables pytest conventions
1个回答
0
投票

如果其他人有类似的问题,请写在这里 - 我和开发团队将“run env”文件更改为没有 consts - 但具有返回 env 变量的函数。 –

© www.soinside.com 2019 - 2024. All rights reserved.