pytest-html 是 pytest 框架的一个常用插件,专门用于生成 HTML 格式的测试报告。通过该插件,您可以轻松地在执行测试用例后,将结果以可视化的网页形式保存到指定路径,方便团队查看和分析。
关于 pytest-html
该插件允许通过命令行直接生成 XML 或 HTML 测试报告,并存储于用户自定义的目录中。需要注意的是,每次生成的报告会覆盖上一次的同名文件。
插件安装
使用 pip 安装 pytest-html,确保您的 Python 环境已配置妥当:
pip install pytest-html

使用方式
您可以通过命令行参数快速生成报告:
pytest --html=./report/report.html
为了简化操作,也可以在项目的 pytest.ini 配置文件中添加参数:
[pytest]
addopts = -vs --html=./report/report.html
示例
假设有以下测试用例文件:
def test_a():
assert 1 == 1
print("---test_a")
def test_b():
assert 1 == 2
print("---test_b")
执行命令后,插件会自动创建 report 目录,并在其中生成 report.html 文件及独立的 CSS 样式文件。

通过浏览器打开报告,界面清晰展示测试结果:

报告首页汇总了不同状态的用例数量(如通过、失败、跳过等),并支持展开查看每个用例的详细执行信息,包括断言错误和打印输出。

合并样式以方便分享
默认生成的报告包含独立的 CSS 文件,不利于直接分享。您可以通过添加 --self-contained-html 参数,将样式内嵌到 HTML 中,生成单个文件报告:
pytest case/test_report.py -vs --html=./report/report.html --self-contained-html
同样,该参数也可配置在 pytest.ini 中,实现自动化执行:

配置后再次执行测试,生成的报告即为自包含的 HTML 文件,样式完整且易于传输。

报告的不足
pytest-html 生成的报告功能相对基础,界面设计较为简单,适用于快速查看测试结果。对于需要更精美、交互性更强的报告场景,可以考虑使用其他插件如 Allure,这将在后续内容中详细介绍。
|