pytest中钩子函数的使用

news/2024/11/14 6:34:30/

收集测试结果:

2. pytest_terminal_summary(terminalreporter, exitstatus,config)

在测试执行完毕后,用于生成并显示最终的测试摘要信息到终端,你可以实现自定义的测试报告汇总和显示。

例如:你可以在此钩子函数中计算测试用例覆盖率、输出额外的统计信息

在conftest.py文件中使用,所有的测试用例执行完成后,自动收集测试结果

def pytest_terminal_summary(terminalreporter, exitstatus, config):"""函数:pytest钩子函数,固定写法,每次pytest测试完成后,会自动收集测试结果:param terminalreporter:内部终端报告对象,对象的status属性:param exitstatus:返回给操作系统的返回码:param config:pytest配置的config对象:return:"""# 打印执行结果result = terminalreporter.stats# 获取测试用例总数case_all_num = terminalreporter._numcollectedif case_all_num > 0:# 获取成功的用例数case_pass_num = len(terminalreporter.stats.get('passed', []))# 获取失败的用例数case_failed_num = len(terminalreporter.stats.get('failed', []))# 获取错误的用例数case_error_num = len(terminalreporter.stats.get('error', []))# 获取跳过的用例数case_skipped_num = len(terminalreporter.stats.get('skipped', []))# 获取执行时长# round: 四设五入保留小数位数run_time = round(time.time() - terminalreporter._sessionstarttime, 2)formt_run_time = format_datatime(run_time)# 统计测试用例-通过率tgl_str = Noneif case_all_num > 0:tgl = int(case_pass_num) / int(case_all_num)tgl_str = "{:.2%}".format(tgl)# 测试结果写入txt文档result = os.path.join("./report", "result.txt")# 写入测试结果到reports下的result.txt文件with open(result, "w") as f:f.write(f"本次接口自动化测试结果如下(请注意失败及错误的接口):\n")f.write(f"用例总数:{case_all_num}个\n")f.write(f"通过数:{case_pass_num}个\n")f.write(f"失败数:{case_failed_num}个\n")f.write(f"跳过数:{case_skipped_num}个\n")f.write(f"错误数:{case_error_num}个\n")f.write(f"成功率:{tgl_str}个\n")f.write(f"用例执行时长:{run_time}秒 ({formt_run_time})")summary = str()with open(result, 'r') as f:for i in f.readlines():summary = f'{summary}' + imylog.info(summary)

参考博文:

pytest合集(9)— Hook钩子函数_pytest钩子函数-CSDN博客


http://www.ppmy.cn/news/1468697.html

相关文章

Bankless:为什么 AI 需要 Crypto 的技术?

原文标题:《Why AI Needs Crypto’s Values》 撰文:Arjun Chand,Bankless 编译:Chris,Techub News 原文来自香港Web3媒体:Techub News 人工智能革命的梦想一直是一把双刃剑。 释放人工智能的潜力可以解…

基于fabric封装一个简单的图片编辑器(vue 篇)

介绍 前言vue demo版本react 版本 前言 对 fabric.js 进行二次封装,实现图片编辑器的核心功能。核心代码 不依赖 ui响应式框架vue ,react 都适用。 只写了核心编辑相关代码便于大家后续白嫖二次开发 核心代码我就没有打包发布 会 和 业务代码一起放到项目中。 vu…

WPF国际化的最佳实践

WPF国际化的最佳实践 1.创建项目资源文件 如果你的项目没有Properties文件夹和Resources.resx文件,可以通过右键项目-资源-常规-添加创建或打开程序集资源 2.添加国际化字符串 打开Resources.resx文件,添加需要翻译的文本字符,并将访问修…

mesa编译器input识别问题2

概述 hlsl源码如下: struct PSInput {float4 position : SV_POSITION;float4 color : COLOR;float4 color2 : COLOR2; };PSInput VS(float4 pos : POSITION, float4 color : COLOR) {PSInput result;result.position pos;result.color color;return result; }fl…

鸿蒙开发接口安全:【@ohos.abilityAccessCtrl (访问控制管理)】

访问控制管理 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import abilityAccessCtrl from ohos.abilityAccessCtrlabilityAccessCtrl.createAtManager createAtManager(): AtMan…

Einstein Summation 爱因斯坦求和 torch.einsum

Einstein Summation 爱因斯坦求和 torch.einsum flyfish 理解爱因斯坦求和的基本概念和语法,这对初学者来说可能有一定难度。对于不熟悉该表示法的用户来说,可能不如直接的矩阵乘法表达式易于理解。 整个思路是 向量的点积 -》矩阵乘法-》einsum 向…

Visual Studio的快捷按键

Visual Studio的快捷按键对于提高编程效率至关重要。以下是一些常用的Visual Studio快捷按键,并按照功能进行分类和归纳: 1. 文件操作 Ctrl O:打开文件Ctrl S:保存文件Ctrl Shift S:全部保存Ctrl N:…

【LeetCode】42.接雨水

接雨水 题目描述: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数…