将变量保留在 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

确保您考虑在多个测试中重用和更改变量是否真的是您的最佳实践。