侧边栏壁纸
博主头像
一朵云的博客博主等级

拥抱生活,向阳而生。

  • 累计撰写 108 篇文章
  • 累计创建 28 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

pytest -- pytest-html插件的介绍和使用

一朵云
2023-12-16 / 0 评论 / 0 点赞 / 106 阅读 / 3167 字

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

image-lgup.png

生成的HTML报告通常包含:

  • 测试结果摘要(通过/失败/跳过数量)
  • 测试套件和测试用例的层次结构
  • 每个测试的执行时间
  • 失败测试的错误详情和回溯
  • 环境信息(Python版本、操作系统等)
  • 自定义添加的额外信息
0

评论区