报错解决:AttributeError: 'TestGeApi' object has no attribute 'client'
代码如下:
import unittest class TestGeApi(unittest.TestCase): @classmethod def setUpclass(cls) -> None: cls.client = GovernmentApiClient( GovernmentData.host, GovernmentData.is_check_db, GovernmentData.sql_cfg ) def test_re_pay(self): result = GovernmentApiClient().re_pay() assert result['code'] == 200, '接口请求失败,code不为200' if self.client.check_db: platformOrderNo = result['data']['platformOrderNo'] # platformOrderNo=LO20220829000000036 exe_sql = f"select * from repay_plan WHERE loan_order_no='{platformOrderNo}'" db_res = self.client.mysql.exec_sql_query(exe_sql) # 校验请求数据和数据库中一致 assert len(db_res) == 1, f"数据库应只存在一条唯一的数据: {db_res}" if __name__ == '__main__': pytest.main(['test_ge.py'])
报错如下:
test_ge.py:24 (TestGeApi.test_re_pay) self = <test_ge.TestGeApi testMethod=test_re_pay> def test_re_pay(self): result = GovernmentApiClient().re_pay() assert result['code'] == 200, '接口请求失败,code不为200' > if self.client.check_db: E AttributeError: 'TestGeApi' object has no attribute 'client'
分析原因:
- 在setUpclass中,第一行加上print后执行,是没有打印出print信息
- 断点调试,执行时只是setUpclass了函数名,函数内的内容并没有执行
- 经过百度搜索是不是函数名与其他的函数名冲突,也不是
- 继续看百度搜索,函数名是不是拼错了,看了下发现字母没拼错,是setUpclass的首字母都需要大写,而class中的c没有大写,更改成大写C,运行正常了
本文来自博客园,作者:他还在坚持嘛,转载请注明原文链接:他还在坚持嘛 https://www.cnblogs.com/brf-test/p/16690038.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2020-09-13 语法:名词解释【转】
2019-09-13 Python 入门
2019-09-13 运算符