2017-09-25 310 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」設置爲環境變量。