Python 使用pytest和tox的环境变量
如何使用pytest和tox测试环境变量 验证.py test_validate.py 如果我在Python 使用pytest和tox的环境变量,python,pytest,tox,Python,Pytest,Tox,如何使用pytest和tox测试环境变量 验证.py test_validate.py 如果我在tox.ini文件中设置环境变量: [testenv] setenv = ENV_VAR=valid_env_value 测试通过了,但我希望保持测试隔离。环境变量应该由测试提供,而不是由测试运行者提供。一种选择是使用和。或者,您可以在测试用例的setUp()中提供环境变量,然后在tearDown()中重置它们。环境变量应该由您的测试提供,而不是由您的测试运行者提供。一种选择是使用和。或者,您可以在
tox.ini
文件中设置环境变量:
[testenv]
setenv = ENV_VAR=valid_env_value
测试通过了,但我希望保持测试隔离。环境变量应该由测试提供,而不是由测试运行者提供。一种选择是使用和。或者,您可以在测试用例的
setUp()
中提供环境变量,然后在tearDown()
中重置它们。环境变量应该由您的测试提供,而不是由您的测试运行者提供。一种选择是使用和。或者,您可以在测试用例的setUp()
中提供环境变量,然后在tearDown()
中重置它们在测试运行之前,我在设置ENV\u VAR
变量时遇到了问题。
必须在测试中重新加载validate
模块,才能使用imp.reload
test_validate.py
我在测试运行之前设置
ENV_VAR
变量时遇到问题。
必须在测试中重新加载validate
模块,才能使用imp.reload
test_validate.py
你是说你想清理环境。测试后的变量对吗?在这种情况下,我尝试在不使用tox.ini文件设置环境变量的情况下通过测试。您的意思是希望清除环境变量。测试后的变量对吗?对于这种情况,我尝试在不使用tox.ini文件设置环境变量的情况下通过测试。
class TestValidateEnvVar:
def test_validate_env_var_pass(self):
value = 'valid_env_value'
os.environ["ENV_VAR"] = value
validate.validate_env_var(value)
[testenv]
setenv = ENV_VAR=valid_env_value
import mock
from imp import reload
class TestValidateEnvVar:
@mock.patch.dict(os.environ, {"ENV_VAR": "env_value"})
def test_validate_env_var_pass(self):
reload(validate)
value = 'env_value'
os.environ["ENV_VAR"] = value
validate.validate_env_var(value)