28-pytest-生成HTML报告
Posted 爱学习de测试小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了28-pytest-生成HTML报告相关的知识,希望对你有一定的参考价值。
生成html报告
前言
- 本篇来学习使用pytest-html插件生成HTML报告
安装包
pip install pytest-html
使用示例
- –html=report.html : css 文件和html报告是分开的
# -*- coding: utf-8 -*-
# @Time : 2022/3/21
# @Author : 大海
import os
def test_add():
a = 1 + 2
assert a == 3
if __name__ == '__main__':
# --html=报告名.html css和html 是分开的
os.system('pytest -s test_52.py --html=report.html')
- –self-contained-html : 合并css 到html报告中
# -*- coding: utf-8 -*-
# @Time : 2022/3/21
# @Author : 大海
import os
def test_add():
a = 1 + 2
assert a == 3
if __name__ == '__main__':
# --self-contained-html css样式合并到html中
os.system('pytest -s test_52.py --html=report.html --self-contained-html')
- 查看HTML报告
修改HTML报告
- 添加描述(Description)列,添加可排序时间(Time)列,并删除链接(Link)列
- 新建conftest.py文件(文件名固定,不要改),代码如下
# -*- coding: utf-8 -*-
# @Time : 2022/3/21
# @Author : 大海
from datetime import datetime
from py.xml import html
import pytest
@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(datetime.utcnow(), class_='col-time'))
cells.pop()
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
outcome = yield
report = outcome.get_result()
report.description = str(item.function.__doc__)
- 测试方法文件 test_53.py
# -*- coding: utf-8 -*-
# @Time : 2022/3/21
# @Author : 大海
import os
import time
def test_add():
"""验证1+2等于3"""
a = 1 + 2
time.sleep(2)
assert a == 3
if __name__ == '__main__':
os.system('pytest -s test_53.py --html=./report/report.html --self-contained-html')
- 查看HTML报告
以上是关于28-pytest-生成HTML报告的主要内容,如果未能解决你的问题,请参考以下文章
Beyond Compare 3在比较HTML后,生成的报告中代码不换行