python - 如何设置pytest类的类实例变量
问题描述
我按照这里的答案解决了我在 pytest 类中访问类实例变量的问题,方法是通过autouse
夹具设置它们。
代码:
import pytest
@pytest.fixture(autouse=True, scope='class')
def setup(request):
request.cls.number = 4
request.cls.id = 0
class TestResources(object):
def test_01(self):
a = self.number * 4
assert a == 16
self.id = a
def test_02(self):
assert self.id == 16
print(self.id)
但是,我可以通过这种方法访问一个类变量集,但不能通过测试为其设置另一个值?
在上面的示例中,由于无法设置而失败test_02
并出现以下断言错误。test_01
self.a = 16
E assert 0 == 16
E + where 0 = <test_a.TestResources object at 0x7f918e83da30>.id
我找到了一种解决方法,我可以添加request
到 test_01 参数并再次设置它,如下所示,但这超出了上课的目的。
def test_01(self, request):
a = self.number * 4
assert a == 16
request.cls.id = a
有一个更好的方法吗?
解决方案
推荐阅读
- php - 仅保留在指定键处包含指定值的数组行
- react-native - 使用状态构建自定义输入组件
- javascript - Google Maps API - 有没有办法在下次点击时反转监听器?
- line - 如何找到两条线段之间点的特定比率?
- java - SOAP API 客户端请求创建问题 - addChildElement (org.w3c.dom.DOMException: NAMESPACE_ERR)
- ruby-on-rails - 如何为 Rails 公用文件夹中的所有文件创建路径?
- python - 如何在给定时间后关闭 matplotlib 动画窗口?
- android - 当我运行 Android 项目时,所有组件都相互重叠
- angular - 当我在 Angular 应用程序中单击图标时,如何将与特定元素相关的特定值传递到列表中?
- go - 无法在给定类型的类型定义上调用方法