pytest运行结果解析及其改造

简介:场景假设 - 当运行pytest完成后,需要针对运行的结果进行即时的反馈,打印 PASS 或者 FAIL,及其运行失败的原因,最后将结果推送给消息机器人。

历史攻略:

pytest+allure安装和使用

pytest:并行和并发运行用例

python:消息推送 - 企业微信机器人推送

让你的pytest日志更有序:配置和使用技巧

Python配置与测试利器:Hydra + pytest的完美结合

Playwright - 04:pytest并行、并发、运行浏览器兼容性测试

分析源码:

pytest.main()的执行结果为枚举,依次为以下6种情况。

@final
class ExitCode(enum.IntEnum):
    #: Tests passed.
    OK = 0
    #: Tests failed.
    TESTS_FAILED = 1
    #: pytest was interrupted.
    INTERRUPTED = 2
    #: An internal error got in the way.
    INTERNAL_ERROR = 3
    #: pytest was misused.
    USAGE_ERROR = 4
    #: pytest couldn't find tests.
    NO_TESTS_COLLECTED = 5

根据结果进行判断输出,使用艺术字模块打印 PASS 或者 FAIL即可。

案例源码:

# -*- coding: utf-8 -*-
# time: 2024/3/22 0:30
# file: main.py
# 公众号: 玩转测试开发
import os
import pytest
from pyfiglet import Figlet
from colorama import Fore, Back, Style

if __name__ == "__main__":
    # step-1:use pytest run test_case
    result = pytest.main(["-s", "test_case/test_demo.py", "-n=3", "--alluredir", "./report"])

    f = Figlet(font='slant')

    if result == 0:
        print(Fore.GREEN + Back.BLACK + Style.BRIGHT + f.renderText('PASS'))
    elif result == 1:
        print(Fore.RED + Back.BLACK + Style.BRIGHT + f.renderText('FAIL'))
    else:
        pass
    # step-2:auto report json data,zip to allure-html
    os.system("allure serve report")
    # os.popen("allure serve report")

requirements.txt

pytest
colorama
pyfiglet
pytest-html
pytest-xdist
allure-pytest
pytest-repeat
pytest-assume
pytest-rerunfailures

test_case/test_demo.py

# -*- coding: utf-8 -*-
# time: 2024/3/22 0:34
# file: test_demo.py
# 公众号: 玩转测试开发
import time
import unittest


class TestDemo(unittest.TestCase):
    def test_01(self):
        time.sleep(0.1)
        print('测试用例1执行')

    def test_02(self):
        time.sleep(0.1)
        print('测试用例2执行')

    def test_03(self):
        time.sleep(0.1)
        print('测试用例3执行')

运行结果:

图片

即:根据pytest的运行结果,控制台输出打印PASS或者FAIL,并显示allure报告,推送机器人(略),详见前一篇攻略。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/482291.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# 对App.config、Web.config的appSettings节点数据进行加密

appSettings加密原因,就是因为容易暴露服务器账号和密码,而且客户也不允许 使用ASP.NET提供的命令工具aspnet_regiis来创建加密命令;aspnet_regiis是提供了直接对配置文件加密的功能的;并且使用aspnet_regiis加密的配置节点在读取…

贪吃蛇(C语言超详细版)

目录 前言: 总览: API: 控制台程序(Console): 设置坐标: COORD: GetStdHandle: STD_OUTPUT_HANDLE参数: SetConsoleCursorPosition: …

Springboot测试找不到bean

1.没有加注解 service类上需要加注解 2.Test类引用错误 3.测试类与我们使用的包名不同,两个都是com.travel才可以,否则扫描不到 4.引入的启动类错误 5.不是很确定,但是也是我犯的错误 6.没有配置好XML文件 有的话再补充

【并发编程】锁相关公平锁和非公平锁?可重入锁锁的升级乐观锁和悲观锁版本号机制CAS 算法乐观锁有哪些问题?

目录 ​编辑 锁相关 公平锁和非公平锁? 可重入锁 锁的升级 乐观锁和悲观锁 版本号机制 CAS 算法 乐观锁有哪些问题? 锁相关 公平锁和非公平锁? 公平锁 : 锁被释放之后,先申请的线程先得到锁。性能较差一些,因…

Nacos介绍和统一配置管理

Nacos(全称为 Alibaba Cloud Nacos,或简称为 Nacos)是一个开源的分布式服务发现和配置管理系统。它由阿里巴巴集团开发并开源,旨在帮助开发人员简化微服务架构下的服务注册、发现和配置管理。 一、Nacos 提供了以下主要功能&…

Deconstructing Denoising Diffusion Models for Self-Supervised Learning

开头说点题外话:这篇可谓是大咖云集啊,刘壮、谢赛宁、何凯明这些耳熟能详的名字,并且这篇论文一些人也觉得分析特别到位,不愧是大佬视角,配得上“解构”两个字;很巧的是,本科阶段的团队导师也是…

什么是虚拟继承

由于C支持多继承&#xff0c;除了public、protected和private三种继承方式外&#xff0c;还支持虚拟&#xff08;virtual&#xff09;继承&#xff0c;举个例子&#xff1a; #include <iostream> using namespace std;class A {}; class B : virtual public A {}; class…

大学形势与政策~秋试题及答案,分享几个实用搜题和学习工具 #媒体#笔记

大学生必备&#xff0c;这条笔记大数据一定定要推给刚上大学的学弟学妹&#xff01;&#xff01; 1.白鸽搜题 这个是公众号 超强题库资源&#xff0c;涵盖行业单位、学历提升等各类考试。解题更轻松&#xff0c;学习更高效。 下方附上一些测试的试题及答案 1、外部招募的主…

【数据库】聚合函数

系列文章目录 &#x1f308;座右铭&#x1f308;&#xff1a;人的一生这么长、你凭什么用短短的几年去衡量自己的一生&#xff01; &#x1f495;个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C,自顶向下看Java-CSDN博客 ❤️相关文章❤️&#xff1a;清灵白羽 漾情天…

虚拟机Ubuntu无法识别U盘

1. 现象 虚拟机插入U盘后&#xff0c;无反应。系统中也找不到U盘。 2. 原因 VMware USB Arbitration Service服务别关闭了&#xff0c;任务管理器中找不到该任务。 服务中也没有运行&#xff08;services.msc&#xff09; 3. 解决 打开服务设置窗口&#xff08;services.…

温湿度项目设计V1.0——PCB布线及打板

PCB布线 画好原理图之后&#xff0c;通过工具——标注所有器件&#xff0c;当前原理图上的器件编号会被自动标注号。点击设置——Update PCB Document文件名&#xff0c;弹出的界面先点击生效变更&#xff0c;然后点击执行变更。界面会跳转到PCB界面。如果生效变更有问题&…

城管智慧执法系统源码,基于微服务+java+springboot+vue开发

城管智慧执法系统源码&#xff0c;基于微服务javaspringbootvue开发 城管智慧执法系统源码有演示&#xff0c;自主研发&#xff0c;功能完善&#xff0c;正版授权&#xff0c;可商用上项目。 一套数字化的城管综合执法办案系统源码&#xff0c;提供了案件在线办理、当事人信用…

开学考核复现

不要尝试爆破哟!(misc) 下载图片&#xff0c;解析图片 拿到密码&#xff0c;解压压缩包&#xff0c;生成图片 扫描二维码 留个后门(misc) D盾扫描 打开文件寻找 师姐的旅游照片(misc) 随波逐流&#xff0c;然后base64解码 修改后缀为zip&#xff0c;解压 修改高度 Fuck! (C…

「媒体宣传」企业活动发布会邀请媒体报道的好处与优势?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业活动发布会邀请媒体报道具有多种好处与优势&#xff0c;这些都有助于提升企业的知名度、形象和影响力。以下是一些主要的好处与优势&#xff1a; 提升品牌知名度&#xff1a;媒体报道…

MATLAB环境下基于离散小波变换和主成分平均的医学图像融合方法

随着计算机技术和生物影像工程的日趋成熟&#xff0c;医学图像为医疗诊断提供的信息越来越丰富。目前&#xff0c;由于医学成像的设备种类繁多&#xff0c;导致医生获得的图像信息差异较大。如何把这些信息进行整合供医生使用成为当务之急。基于此&#xff0c;医学图像融合技术…

Windows下安装QT,遇到下载组件中没有指定版本(提供解决方式) + 5.15详细安装步骤版

Windows下安装QT 5.15详细安装问题详解 前情提要一、QT 5.15及之后版本的下载问题二、QT 5.15及之后版本的下载方式&#xff1a;下载QT(在线安装版本)三、详细安装步骤遇到<下载组件>中没有指定版本的解决方式 前情提要 嵌入式设备搭载的QT版本是5.15&#xff0c;所以PC…

【C语言】预处理编译链接调试技巧详解

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;C语言_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.预处理 1.1 预定义符号 1.2 #define 1.2.1 #define 定义标识符 1.2.2 #define 定义宏 1.2.3 #define 替换规则 1.2.4 #和## …

23. UE5 RPG制作属性面板(一)

随着角色的属性越来越多&#xff0c;我们不能每次都进行showdebug abilitysystem进行查看&#xff0c;而且玩家也需要查看角色属性&#xff0c;所以需要一个查看玩家角色属性的面板。 在前面&#xff0c;我们创建三种类型的属性 Primary Attributes&#xff08;主要属性&#…

prettier + eslint 配置

vue-cli 新建项目选择 ESLint Prettier 会自动下载相关包 settings.json {"editor.formatOnSave": true, // 开启保存文件自动格式化代码"editor.defaultFormatter": "esbenp.prettier-vscode", // 默认的代码格式化工具// "prettier.r…

11 Games101 - 笔记 - 几何(曲线与曲面)

11 几何&#xff08;曲线与曲面&#xff09; 贝塞尔曲线 定义 贝塞尔曲线&#xff1a;由控制点和线段组成的曲线&#xff0c;控制点是可拖动的支点。 如图&#xff0c;蓝色为贝塞尔曲线&#xff0c;p1, p2, p3为控制点&#xff0c;曲线和初始与终止端点相切&#xff0c;并且…