python - Pytest:如何测试从环境变量设置的类变量?
问题描述
我正在使用 Pytest 来测试一个类变量是否设置正确。此类变量是使用环境变量设置的。我想确保它已设置。
我尝试在 conftest.py 上使用 autouse 固定装置,使用 monkeypatch 设置 env var,效果很好。但是,fixture 在每次测试之前执行,并且类变量在导入时设置。如果我在测试前导入类,我的类 var 出来是空的。如果我在每个测试中都导入它,它可以工作,但这不是一个好方法。
我的类.py
class MyClass(object):
my_class_var = os.getenv('MY_ENV_VAR')
conftest.py
@pytest.fixture(autouse=True)
def env_setup(monkeypatch):
monkeypatch.setenv('MY_ENV_VAR', 'TESTING')
测试类.py
class TestEnvironment:
def test_env_var(self):
from module.myclass import MyClass
assert MyClass.my_class_var == "TESTING"
#this works
class TestOtherStuff:
#...
将有更多的环境测试,就像 TestOtherStuff 上的其他测试一样。我正在寻找一种在设置环境变量后加载类的方法,而不必在每次测试时都导入该类。
编辑 - 答案中的解决方案
解决方案
也许是否尝试使用用户范围控制
if name == '<strong>main': main()
在这种情况下 !我们没有导入任何类,否则您可以执行一个类。
推荐阅读
- variables - 类型错误:参数 0 不是变量
- php - 从基本上是分析数据的phpspreadsheet生成动态excel
- javascript - 谷歌地图 - 获取标记的位置
- php - Bootstrap 4 表单没有发送任何消息
- powershell - 如何在 PowerShell 中使用 max 执行 select group by?
- python - Networkx 图:使边缘远离节点
- java - 如何防止onDraw的Paint影响ArrayList中的所有矩形
? - syntax - MAIN 中无法访问的命令行选项
- android - Android 自定义视图:如何通过 LiveData 和数据绑定更新自定义枚举属性
- java - 无法在有状态会话 bean 中持续存在