首页 > 其他分享 >案例7-Unittest测试框架定制

案例7-Unittest测试框架定制

时间:2023-08-04 14:47:07浏览次数:43  
标签:__ 用例 Unittest 案例 添加 测试 测试函数 定制 unittest

需求描述

假设由你们公司的已有一套前辈开发的基于unittest的测试框架,现在交由你进行维护。领导另外提出了一些新的需求,比如:

提示

Unittest用例的本质是将继承unittest.TestCase的测试类的每一个test开头的测试方法,变成该测试类的对象,添加到测试套件中以批量运行。

用例标记

我们可以使用自定义的装饰器,为测试函数添加优先级、状态、负责任、版本等属性
然后通过自定义测试基类,重写__init__()方法来把测试函数的这些属性绑定到测试用例对象上。例如:

import unittest

def test(priority=None, status=None, owner=None, version=None):
    # TODO: 返回一个装饰器,为测试函数添加指定属性

class TestBase(unittest.TestCase):
    def __init__(self, methodName='runTest'):
         super().__init__(methodName)  # 调用父类方法以保留原有功能
		 testMethod = getattr(self, methodName) # 获取测试函数对象
		 # TODO: 拷贝测试函数属性到self

实际应用示例

class TestDemo(TestBase):
    @test(priority='p1', status='ready', owner='Lilei', version='v1.0.0', tags=['demo', 'api'])
    def test_a():
	    pass

用例筛选

筛选用例,可以先用unittest.defaultTestLoader.discover()收集到所有的用例,然后递归遍历测试套件,得到所有的用例列表,然后根据需求(如priorities=['p0', 'p1'], 进行筛选。

并发运行

并发运行可以通过自定义TestSuite或TestRunner并结合线程池来实现。

标签:__,用例,Unittest,案例,添加,测试,测试函数,定制,unittest
From: https://www.cnblogs.com/superhin/p/17605863.html

相关文章

  • PLC顺序控制指令的应用案例
    本节内容主要介绍程序控制指令中的顺序控制指令,该指令主要用于一些有明显的动作顺序控制,且包含一系列重复执行的操作时,就可以使用顺序控制指令,这样使程序更清晰,动作过程更好理解,也便于电气设计人员进行程序设计。顺序控制的程序设计一般会有多种不同的类型,在进行顺序控制......
  • VMware ESXi 7.0 U3n macOS Unlocker & OEM BIOS (标准版和厂商定制版) 2023年8月更新
    VMwareESXi7.0U3nmacOSUnlocker&OEMBIOS(标准版和厂商定制版)2023年8月更新ESXi7.0标准版和Dell(戴尔)、HPE(慧与)、Lenovo(联想)、Inspur(浪潮)、Cisco(思科)定制版镜像请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3-oem/,查看最新版。原创作品,转......
  • Unity的IPreprocessShaders:深入解析与实用案例
    UnityIPreprocessShadersUnityIPreprocessShaders是Unity引擎中的一个非常有用的功能,它可以让开发者在编译Shader时自定义哪些操作需要被执行。这个可以帮助开发者更好地控制Shader的编译过程,确保在编译Shader时执行必要的操作。在本文中,我们介绍UnityIPreprocessShaders的使......
  • 【答疑】jsonpath和beanshell配合使用案例
    问题今天提升群小伙伴问了这样一个问题:接口返回如下(list元素个数不确定),需要提取所有的iautoid,然后用逗号拼接起来,如果是如下返回,需要得到的结果是1687283717749342208,1679392630364184576,后续请求需要使用{ "data":{ "firstPage":true, "lastPage":false, "list":......
  • ChatGPT 问答00011 Spring框架事件驱动使用案例
    以下是一个使用Spring框架的事件驱动机制的简单案例:定义事件类:publicclassOrderEventextendsApplicationEvent{privateOrderorder;publicOrderEvent(Objectsource,Orderorder){super(source);this.order=order;}public......
  • 【OpenHarmony内核编程接口】介绍定时器管理两种定时器以及案例演示
    前言本文介绍了内核编程接口之软定时器软定时器软定时器含义软件定时器(Timer),是基于系统时钟tick且由软件来模拟的定时器,当经过设定的tick计数值后会触发用户定义的回调函数ps1:定时器触发函数的执行,不是线程ps2:当定时器到期时,将执行回调函数以运行特定的代码ps3:定时精度......
  • 阿里云平台WoSign SSL证书应用案例
    沃通CA与阿里云达成合作并在阿里云平台上线WoSign品牌SSL证书。自上线以来,WoSignSSL证书成为阿里云“数字证书管理服务”热销证书产品,获得阿里云平台客户认可,助力阿里云平台政府、金融、教育、供应链、游戏等各类行业客户实现网站系统数据传输安全。WoSignSSL证书,行业客户信赖之......
  • 系统架构设计师笔记第43期:云原生架构案例分析
    云原生架构是一种软件架构和开发方法论,旨在利用云计算、容器化和微服务等技术,构建高度可伸缩、弹性和可靠的应用程序。它的设计理念是将应用程序与底层的基础设施解耦,以实现更高的灵活性、可维护性和可扩展性。云原生架构的核心特点包括:微服务架构:将应用程序拆分为一组小型、自治的......
  • 视频融合平台视频汇聚平台LiteCVR反馈处理HLS流播放失败案例分享
    很高兴可以在这里向诸位分享一下HLS流播放失败相关的反馈处理,也算是一个简单的教程,接下来开始讲解。近期呢,我们整理了收到的用户反馈,发现他们在项目现场使用国标GB28181协议将设备接入LiteCVR后,可以正常播放FLV格式的视频,但是在使用HLS流播放时却遇到了问题。他们请求我们协助进行......
  • ChatGPT 问答00005 Spring的ApplicationEventPublisher的使用案例
    下面是一个使用ApplicationEventPublisher的简单示例,演示了如何在SpringBoot中使用该接口发布和监听事件:首先,定义一个自定义的事件类CustomEvent,用于封装事件的数据:publicclassCustomEvent{privatefinalStringmessage;publicCustomEvent(Stringmessage){......