当前位置: 首页 > news >正文

Pytest-allure如何在测试完成后自动生成完整报告?

一、完整步骤

常规allure报告的生成方法是在pytest全部用例执行完成后,手动在命令行执行如

 allure generate ./temps -o ./report --clean

每次用例执行完成后都要重复如此的操作,十分繁琐。

可以使用如下方式让用例执行完成后自动生成报告到当前目录下:

1、首先在pytest.ini里面配置。(如没有则在根目录下创建)

[pytest]
addopts = -vs --alluredir=./temps --clean-alluredir

2、其次在conftest.py里面新增如下代码。(如没有则在根目录下创建)

import os

def pytest_sessionfinish(session, exitstatus):
    os.system("allure generate ./temps -o ./report --clean")

则可以在用例执行完成后自动生成报告。

二、代码讲解

1、ini配置文件

[pytest]
addopts = -vs --alluredir=./temps --clean-alluredir

-v
作用: 增加详细输出。
说明: 使 pytest 输出更详细的测试结果,包括每个测试用例的状态和输出信息。
-s
作用: 允许打印到控制台。
说明: 禁止 pytest 捕获标准输出和标准错误输出,允许测试脚本中的 print 语句正常输出到控制台。
--alluredir=./temps
作用: 指定生成 Allure 测试结果文件的目录。
说明: 将测试结果保存到指定目录(这里是 ./temps),以便后续生成 Allure 报告。
--clean-alluredir
作用: 清空指定的 Allure 结果目录。
说明: 在生成新的测试结果之前,清空指定的目录(这里是 ./temps),避免旧的结果文件干扰新结果。

2、conftest.py

import os

def pytest_sessionfinish(session, exitstatus):
    os.system("allure generate ./temps -o ./report --clean")

定义一个 pytest 的 hook 函数 pytest_sessionfinish

执行 Allure 报告生成命令:os.system("allure generate ./temps -o ./report --clean")

三、踩坑

之前直接在fixture中编写os代码,期望能够在用例执行完成后生成报告,但受到pytest框架的影响,会导致用例缺失(我有十个用例,在fixture里面执行完后只有9个用例的报告)

@pytest.fixture(scope="session", autouse=True)
def generate_allure_report(request):
    yield
    os.system("allure generate ./temps -o ./report --clean")

相关文章:

  • CVE-2024-46101
  • 本地服务器和云服务器区别在哪里
  • MobaXterm基本使用 -- 服务器状态、批量操作、显示/切换中文字体、修复zsh按键失灵
  • Rust 函数
  • 【JAVA高级】如何使用Redis加锁和解锁(一)、Lua脚本执行原理及流程
  • cMake学习笔记(初级使用)
  • C++学习:list模拟实现
  • 《中国工程科学》
  • 探索EasyCVR视频融合平台:在视频编解码与转码领域的灵活性优势
  • 【IOS】申请开发者账号(公司)
  • (已解决)torch.load的时候发生错误ModuleNotFoundError: No module named ‘models‘
  • 【Gitee自动化测试2】Git,Github,Gitlab,Gitee
  • 已存在的Python项目使用依赖管理工具UV
  • 比较 Python Web 框架:Django、FastAPI 和 Flask
  • 微服务注册中⼼1
  • 【计算机组成原理】实验一:运算器输入锁存器数据写实验
  • MCUboot 和 U-Boot区别
  • 什么是ETL?什么是ELT?怎么区分它们使用场景
  • 常见的TTL,RS232,RS485,IIC,SPI,UART之间的联系和区别
  • 【学习笔记】SSL/TLS证书安全机制之证书透明
  • 卢正已任上海市司法局党委委员、副局长
  • 肖峰读《从塞北到西域》︱拉铁摩尔的骆驼
  • 伤员回归新援融入,海港逆转海牛重回争冠集团
  • 马上评丨规范隐藏式车门把手,重申安全高于酷炫
  • 中信银行:拟出资100亿元全资设立信银金融资产投资有限公司
  • 澎湃研究所“营商环境研究伙伴计划”启动