Pytest报告添加描述时报错:AttributeError: ‘TestReport‘ object has no attribute ‘description‘
Pytest报告添加描述时报错
- AttributeError: 'TestReport' object has no attribute 'description'
AttributeError: ‘TestReport’ object has no attribute ‘description’
在conftest文件增加报告描述,如下:
@pytest.mark.optionalhook
def pytest_html_results_table_header(cells):cells.insert(2, html.th('Description'))cells.insert(1, html.th('Time', class_='sortable time', col='time'))cells.pop()@pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):cells.insert(2, html.td(report.description))cells.insert(1, html.td(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), class_='col-time'))cells.pop()
但是运行后会报错误,AttributeError: ‘TestReport’ object has no attribute ‘description’:
Traceback (most recent call last):File "C:/Users/Administrator/Desktop/jiekou/testcase/test_login.py", line 24, in <module>pytest.main(['-v', '-s',"-W", "ignore:Module already imported:pytest.PytestWarning", '--html=report/report.html','--self-contained-html'])File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\_pytest\config\__init__.py", line 164, in mainret = config.hook.pytest_cmdline_main(File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\hooks.py", line 286, in __call__return self._hookexec(self, self.get_hookimpls(), kwargs)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\manager.py", line 93, in _hookexecreturn self._inner_hookexec(hook, methods, kwargs)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\manager.py", line 84, in <lambda>self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 208, in _multicallreturn outcome.get_result()File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 80, in get_resultraise ex[1].with_traceback(ex[2])File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 187, in _multicallres = hook_impl.function(*args)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\_pytest\main.py", line 306, in pytest_cmdline_mainreturn wrap_session(config, _main)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\_pytest\main.py", line 294, in wrap_sessionconfig.hook.pytest_sessionfinish(File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\hooks.py", line 286, in __call__return self._hookexec(self, self.get_hookimpls(), kwargs)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\manager.py", line 93, in _hookexecreturn self._inner_hookexec(hook, methods, kwargs)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\manager.py", line 84, in <lambda>self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 203, in _multicallgen.send(outcome)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\_pytest\terminal.py", line 794, in pytest_sessionfinishoutcome.get_result()File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 80, in get_resultraise ex[1].with_traceback(ex[2])File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 187, in _multicallres = hook_impl.function(*args)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pytest_html\plugin.py", line 746, in pytest_sessionfinishself._post_process_reports()File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pytest_html\plugin.py", line 728, in _post_process_reportsself.append_passed(test_report)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pytest_html\plugin.py", line 444, in append_passedself._appendrow("Passed", report)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pytest_html\plugin.py", line 425, in _appendrowresult = self.TestResult(outcome, report, self.logfile, self.config)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pytest_html\plugin.py", line 191, in __init__self.config.hook.pytest_html_results_table_row(report=report, cells=cells)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\hooks.py", line 286, in __call__return self._hookexec(self, self.get_hookimpls(), kwargs)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\manager.py", line 93, in _hookexecreturn self._inner_hookexec(hook, methods, kwargs)File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\manager.py", line 84, in <lambda>self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 208, in _multicallreturn outcome.get_result()File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 80, in get_resultraise ex[1].with_traceback(ex[2])File "C:\Users\Administrator\Desktop\jiekou\venv\lib\site-packages\pluggy\callers.py", line 187, in _multicallres = hook_impl.function(*args)File "C:\Users\Administrator\Desktop\jiekou\conftest.py", line 39, in pytest_html_results_table_rowcells.insert(2, html.td(report.description))
AttributeError: 'TestReport' object has no attribute 'description'
此时我们只需要在conftest文件下加如下钩子函数就可以完美解决:
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):outcome = yieldreport = outcome.get_result()report.description = str(item.function.__doc__)report.nodeid = report.nodeid.encode("utf-8").decode("unicode_escape") # 设置编码显示中文
Pytest报告添加描述时报错:AttributeError: ‘TestReport‘ object has no attribute ‘description‘相关推荐
- python使用Axes3D画三维图加入legend图例时报错AttributeError: ‘Poly3DCollection‘ object has no attribute ‘_edgecolo
Q:python使用Axes3D画三维图加入legend图例时报错AttributeError: 'Poly3DCollection' object has no attribute '_edgeco ...
- Scrapy爬虫报错AttributeError: ‘NoneType‘ object has no attribute ‘write‘
前言 一.报错 AttributeError: 'NoneType' object has no attribute 'write' 二.报错原因 1.piplines文件中的方法不能自定义的呢 开始 ...
- 关于在《python编程从入门到实践》书中练习“外星人大战”报错“AttributeError: ‘AlienInvasion‘ object has no attribute ‘blit‘”
关于在<python编程从入门到实践>书中练习"外星人大战"报错"AttributeError: 'AlienInvasion' object has no ...
- 爬虫的自创建请求对象:报错AttributeError: 'str' object has no attribute 'items'
在使用爬虫库创建自定义请求对象时 将值传入headers agent = random.choice(userAgent) REQ = request.Request(url,headers=agen ...
- 运行项目时flask_sqlalchemy报错AttributeError: ‘LocalStack‘ object has no attribute ‘__ident_func__‘
运行项目时flask_sqlalchemy报错AttributeError: 'LocalStack' object has no attribute '__ident_func__' 1.原因 2. ...
- 报错AttributeError: ‘NoneType‘ object has no attribute ‘shape‘
环境: python3.6.4 opencv3.4.1.15 运行目标跟踪object_tracking文件夹中的mean函数时报错且不显示视频结果 Traceback (most recent ca ...
- python3 多进程 multiprocessing 报错 AttributeError: ‘ForkAwareLocal‘ object has no attribute ‘connection‘
目录 错误代码 报错信息 错误原因 解决方法 错误代码 python多进程管理manager时候,当不使用join对当前进程(主进程)进行阻塞时会报错,具体代码及错误如下: from multipro ...
- python的mysql数据查询及报错AttributeError: 'Connection' object has no attribute 'curson'
import pymysql #创建连接 con = pymysql.connect(host='localhost',user='root',password='123456',port=3306, ...
- Python之报错AttributeError:'CocaCola' object has no attribute 'local_logo'
试运行class类的代码如下,然而有报错信息:AttributeError:'CocaCola' object has no attribute 'local_logo' class CocaCola ...
- python 执行报错AttributeError: 'list' object has no attribute 'g'
^ SyntaxError: invalid syntax E:\数学-机器学习-西瓜书-周志华\UDACITY购课\project1 矩阵操作>python test.py Traceback ...
最新文章
- 目标检测 | 清晰易懂的SSD算法原理综述
- 【CentOS】设置服务开机自动启动
- linux memcached php 整合
- Python基础:一起来面向对象 (二) 之搜索引擎
- boost::icl::split_interval_set用法的测试程序
- html5水调歌头代码,张惠言的五首《水调歌头》
- Sparklyr与Docker的推荐系统实战
- ios Undefined symbols for architecture arm64
- 解决办法:对lzma_stream_decoder/lzma_code/lzma_end未定义的引用
- Maven下载及安装教程
- InTouch 如何备份驱动的通信配置
- Android屏幕尺寸详解
- Cloakroom BZOJ2794 POI2012(背包问题)
- 从期刊层面看科研!计算机顶级期刊大盘点(上)
- java手机充值_话费充值示例代码
- 医学计算机论文,医学图像数据库-外文翻译(计算机论文,医学论文适合)
- 【LittleXi】sql学习笔记
- Cool Edit Pro
- 雅思托福100G视频教程及资料
- 区块链100讲:Hyperledger Cello简介