如果这件事有点杂乱无章,我会事先表示歉意,但在过去的几个小时里,我已经疲惫不堪了。
我目前正尝试在Visual代码测试资源管理器()中使用带有PyTest配置的PyTest。我使用一个单独的脚本在我的终端中设置我的环境变量,该脚本从中提取秘密,并将它们存储在我的终端中,作为一个环境变量。
但是,PyTest无法“看到”我的脚本设置的环境变量,而包含我的环境变量的变量只是返回NoneType。
如果我不使用PyTest,当我只调用os.environ.get
时,环境变量就会很容易地被拾取,并且可以很好地检索环境变量。
我已经看到了在PyTest中设置环境变量的各种方法,但它们通常涉及使用.ini文件或.env文件,这需要将环境变量的值硬编码到这些文件中。
有没有办法说“嗨,PyTest,我知道您不喜欢os.environ.get
,但是我保证这些环境变量在运行时就会存在”。我这样说是因为它就像PyTest在运行时看不到系统中存在的任何环境变量,必须手动告诉它这些变量存在于.env文件中(在这里您必须对敏感信息进行硬编码)。
如果能对此提供任何帮助,我们将不胜感激。
发布于 2022-06-14 00:30:26
pytest可以很好地处理环境变量。考虑一下这个简单的测试:
import os
def test_env():
assert os.environ.get("MYVAR") == "expected_value"
如果在我的环境中运行没有pytest
的MYVAR
,我得到:
$ pytest
...
test_envvar.py F [100%]
=============================================== FAILURES ================================================
_______________________________________________ test_env ________________________________________________
test_envvar.py:5: in test_env
assert os.environ.get("MYVAR") == "expected_value"
E AssertionError: assert None == 'expected_value'
...
但是,如果在pytest运行的环境中设置它,则测试通过:
$ export MYVAR=expected_value
$ pytest
...
test_envvar.py . [100%]
=========================================== 1 passed in 0.01s ===========================================
如果您没有看到环境变量的预期值,这意味着您没有将它们设置在正确的位置。
https://stackoverflow.com/questions/72610090
复制相似问题