2017-09-25 311 views
0

我正在使用pytest为在AWS中运行的我的python服务运行测试。pytest - 设置具有环境特定值的环境变量

我想测试从SNS主题触发的服务。所以我的测试写入了SNS主题。主题ARN与dev,staging,prod不同。

在测试中,我希望能够使用相同的环境变量访问主题ARN,并为每个环境选择正确的主题。

self.sns_topic_arn = os.environ['SNS_TOPIC'] 

我有一个服务,它的设置,构建,测试独立于我所有的服务和部署环境。

我指的是关于如何通过ENV讨论瓦尔How to pass environment variables to pytest

但是我无法弄清楚如何设置每个环境的价值。有模板还是最佳做法?

+0

请问你能解释一下哪里以及你如何设置'os.environ ['SNS_TOPIC']'?在试运行期间还是从其他地方? –

回答

0

我发布了适合我们的解决方案。我不确定这在所有用例中都是有用的答案,或者我的问题适用于许多用户。 我们的测试&部署设置的方式,结果很简单。我没有立即想出来开始:|。

我有一个服务,它的设置,构建,测试独立于我所有的服务和部署环境。

服务在Docker容器中运行这些测试。 测试使用AWS代码管道作为验收测试运行,并且每个环境都有一个Docker配置。 因此,我们可以在每个配置中将“SNS_TOPIC”设置为环境变量。