目录
Python使用DDT,抛KeyError异常
报错:
line 158, in testFace
print("kwargs['logName']:",kwargs["logName"])
KeyError: 'logName'
运行demo
test_Data = [{"logName": "shutDownTakePictureFaceLog","elementLocal": "login_OK.png","coor": (0.193, 0.061)},{}]
@ddt.ddt
class test(unittest.TestCase):@ddt.data(*test_Data)def testFace(self, kwargs):print("kwargs------------------------------------------------>",kwargs)print(kwargs.get("logName"))print("kwargs['logName']:",kwargs["logName"])print(type(kwargs.get("logName")))print(str(kwargs.get("logName")))if __name__ == '__main__':unittest.main()
被data修饰的函数会按照,test_Data列表中,元素的个数,来跑相同的次数,而上面数据源中的元素也就是字典出现了两次,所以在第二次运行test()函数的时候,显然上面的数据源中的第二个字典没有数据,去获取第二个字典中的logName的key时,就报错了:KeyError: ‘logName’,它找不到logName这个key。
解决方法:删除第二个字典,或者配置一下第二个字典的参数,不要让它为空
方法一:
test_Data = [{"logName": "shutDownTakePictureFaceLog","elementLocal": "login_OK.png","coor": (0.193, 0.061)}]
方法二:
test_Data = [{"logName": "shutDownTakePictureFaceLog","elementLocal": "login_OK.png","coor": (0.193, 0.061)},{"logName": "ahahha"},]