如何在同一个类中从一个方法访问列表到另一个方法

时间:2018-03-26 09:46:04

标签: python python-3.x

我有以下代码,但是它给出了一个错误:AttributeError:'test_id'对象没有属性'IDlist',我想在test02方法中获取随机值表单列表:

class test_id
    def test_01_ID(self):
        self.df = self.sqlObj.executequerytodataframe(self.query)
        self.myid =self.df["id"]
        self.IDlist = self.myid.values.tolist()

    @pytest.mark.dependency( depends=["test_01_ID"])
    def test_02_GetID1(self):
        random_id = random.sample(self.IDlist,1)
        print(random_id)

1 个答案:

答案 0 :(得分:0)

我假设你正在使用pytest-dependency - 否则,@pytest.mark.dependency(...)没有做任何事情。

您需要使用@pytest.mark.dependency(...)标记依赖关系图中的所有测试。包括那些没有任何依赖关系的东西 - 在这种情况下,不要将任何参数传递给dependency()。 此外,由于第一次测试也在课堂上,你必须添加课程' depends参数的名称:depends=["test_id::test_01_id"]。 另一个问题是pytest为每个测试方法创建了一个新的类实例 - 你必须使用test_id.IDlist而不是self.IDlist来克服它。

作为旁注 - 如果你有一些必须在某些测试之前运行的初始化代码,那么使用pytest fixtures会更好。在这种情况下,它将是这样的:

@pytest.fixture
def id_list():
    df = self.sqlObj.executequerytodataframe(self.query)
    myid = df["id"]
    return self.myid.values.tolist()

def test_GetID(id_list):
    ...