实现 pytest 测试完成后自动生成 allure 报告,避免手动执行生成命令的繁琐操作。
•
[pytest]
addopts = -vs --alluredir=./temps --clean-alluredir• 参数说明:
-v:详细输出测试结果-s:允许打印控制台输出(不捕获 print 内容)--alluredir=./temps:指定测试结果文件存放目录--clean-alluredir:生成新结果前清空 temps 目录,避免旧数据干扰•
import os
def pytest_sessionfinish(session, exitstatus):
# 测试会话结束后自动生成报告
os.system("allure generate ./temps -o ./report --clean")• 利用 pytest 的 pytest_sessionfinish 钩子函数,在所有用例执行完成后触发报告生成命令
temps(结果文件)和 report(最终报告)两个目录,无需手动创建。allure open ./report 命令在浏览器打开报告。通过 pytest.ini 配置结果输出路径 + conftest.py 钩子函数自动触发生成命令,实现测试完成后一键生成完整 allure 报告,简化操作流程。