pytest -- pytest-html插件的介绍和使用
简介:
pytest-html 是一个为 pytest 框架生成 HTML 测试报告的插件,生成的报告比较简单。
准备:
安装插件
pip install pytest-html
更新依赖
pip freeze > requirements.txt
手动创建测试报告的文件夹 reports
mkdir reports # 在项目根目录下执行
指令:
--html=report.html
:指定报告文件路径和名称--self-contained-html
:生成单个独立的HTML文件(包含所有CSS和JS)--css=style.css
:添加自定义CSS样式
# 在项目根目录执行
pytest --html=reports/report.html --self-contained-html -v
如果不想要每次执行都输入一串参数,可以配置在根目录的 pytest.ini 中。
[pytest]
# addopts: 指定运行 pytest 时默认附加的命令行选项
addopts =
# 指定 HTML 报告输出路径
--html=reports/report.html
# 生成自包含的 HTML (CSS/图片内嵌)
--self-contained-html
# 增加输出详细度 (verbose)
-v
# 失败时显示简短的 traceback (可选)
--tb=short
# 如果你想在报告中看到 print 输出,通常不需要加,-s 会包含 stdout
# --capture=no
# 显示 print 语句输出 (通常和 -v 一起用)
# -s
# testpaths: 指定 pytest 查找测试文件的目录列表
testpaths =
testcases
#. # 当前目录也查找
# norecursedirs: 指定 pytest 在递归查找时应忽略的目录,# 虚拟环境目录:venv;# 避免在报告目录里找测试:reports
norecursedirs =
.git
__pycache__
venv
env
build
d
reports
.tox
# python_files: 指定哪些文件被视为测试文件 (默认: test_*.py, *_test.py)
python_files =
test_*.py
*_test.py
# python_classes: 指定测试类的命名模式 (默认: Test*)
python_classes =
Test*
# python_functions: 指定测试函数的命名模式 (默认: test_*)
python_functions =
test_*
# markers: 定义自定义标记 (可选,用于 pytest.mark.skip, pytest.mark.slow 等)
markers =
slow: marks tests as slow
serial: marks tests as unable to run in parallel
report.html
生成的HTML报告通常包含:
- 测试结果摘要(通过/失败/跳过数量)
- 测试套件和测试用例的层次结构
- 每个测试的执行时间
- 失败测试的错误详情和回溯
- 环境信息(Python版本、操作系统等)
- 自定义添加的额外信息
评论区