我有以下代码,但是它给出了一个错误: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)
答案 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):
...