将变量保留在 test class 中,以便在 pytest 中进行下一次测试
Keep variables inside test class for next test in pytest
我想在 class 中构建我的 pytests 来测试我加载和修改数据的管道。为此,我创建了类似以下示例的内容。但是第二次测试失败了,因为 self.data
仍然是 None
.
class TestClass:
data = None
def test_load_data(self):
self.data = [1, 2, 3]
assert isinstance(self.data, list)
def test_modify_data(self):
self.data.append(4)
assert len(self.data) is 4
为什么这不起作用?如何将一项测试的内容传递给另一项测试?
所以如果你有同样的问题,我根据@MrBean Bremen的评论是这样解决的:
class TestClass:
data = None
def test_load_data(self):
self.__class__.data = [1, 2, 3]
assert isinstance(self.data, list)
def test_modify_data(self):
self.__class__.data.append(4)
assert len(self.data) is 4
确保您考虑在多个测试中重用和更改变量是否真的是您的最佳实践。
我想在 class 中构建我的 pytests 来测试我加载和修改数据的管道。为此,我创建了类似以下示例的内容。但是第二次测试失败了,因为 self.data
仍然是 None
.
class TestClass:
data = None
def test_load_data(self):
self.data = [1, 2, 3]
assert isinstance(self.data, list)
def test_modify_data(self):
self.data.append(4)
assert len(self.data) is 4
为什么这不起作用?如何将一项测试的内容传递给另一项测试?
所以如果你有同样的问题,我根据@MrBean Bremen的评论是这样解决的:
class TestClass:
data = None
def test_load_data(self):
self.__class__.data = [1, 2, 3]
assert isinstance(self.data, list)
def test_modify_data(self):
self.__class__.data.append(4)
assert len(self.data) is 4
确保您考虑在多个测试中重用和更改变量是否真的是您的最佳实践。