首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在unittest中自动生成测试用例号?

在unittest中自动生成测试用例号可以通过自定义测试装饰器和元类来实现。下面是一个示例代码:

代码语言:txt
复制
import unittest

def auto_test_case(test_case_no):
    def decorator(cls):
        for name, method in cls.__dict__.items():
            if callable(method) and name.startswith('test_'):
                setattr(cls, name, add_test_case_no(method, test_case_no))
        return cls
    return decorator

def add_test_case_no(method, test_case_no):
    def wrapper(self, *args, **kwargs):
        method(self, *args, **kwargs)
    wrapper.__name__ = method.__name__
    setattr(wrapper, 'test_case_no', test_case_no)
    return wrapper

class AutoTestCaseMeta(type(unittest.TestCase)):
    def __new__(cls, name, bases, attrs):
        for attr_name, attr_value in attrs.items():
            if attr_name.startswith('test_'):
                test_case_no = attrs[attr_name].__dict__.get('test_case_no')
                if test_case_no is not None:
                    attrs[attr_name].__doc__ = f'Test Case No: {test_case_no}'
        return super().__new__(cls, name, bases, attrs)

class MyTestCase(unittest.TestCase, metaclass=AutoTestCaseMeta):
    @auto_test_case('TC001')
    def test_add(self):
        self.assertEqual(1 + 1, 2)

    @auto_test_case('TC002')
    def test_subtract(self):
        self.assertEqual(3 - 1, 2)

if __name__ == '__main__':
    unittest.main()

这段代码定义了两个测试用例,使用了装饰器 auto_test_case 来自动生成测试用例号,并使用元类 AutoTestCaseMeta 来将测试用例号添加到测试方法的文档字符串中。

运行以上代码,输出的测试结果如下:

代码语言:txt
复制
..
----------------------------------------------------------------------
Ran 2 tests in 0.001s

OK

可以看到测试用例执行成功,并且每个测试用例的文档字符串中都包含了自动生成的测试用例号。

这里没有提及具体的云计算相关内容,因为问题与云计算领域无关。如果有关于云计算的问题,可以提供具体的问题,我会尽力给出相应的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

unittest系统(六)如何在一个测试类多个测试用执行只初始化和清理一次?

前言 之前分享了一系列的文章,分别从原理,运行,断言,执行,测试套件,如何跳过用来讲解unittest,那么我们继续分享 正文 我们首先看下下面的代码 import unittestclass...TestDemo(unittest.TestCase): def setUp(self): print("start") def tearDown(self):...我们发现在初始化的时候呢,我们每次都会初始化,但是在实际的测试呢,我们可能会是有些参数或者动作只需要做一次即可,那么我们只能在用初始化一次。那么unittest里面有没有这样的方法 呢?...我们将这些代码带入到我们的测试用,看下效果会如何。...import unittestclass TestDemo(unittest.TestCase): @classmethod def setUpClass(cls): print

1.8K30
  • “摸得着”的接口自动

    02case加载→执行→生成报告 小编这里整理了两种自动化方案,其一是中规中矩的使用unittest进行case加载、运行并结合HTMLTestRunner生成测试报告;其二使用封装了unittest和...2.1标准版 - HTMLTestRunner 这里小编使用unittest来加载测试用,用HTMLTestRunner生成报告。...根据测试套件的用生成报告内容 import time import unittest from HTMLTestRunner import HTMLTestRunner from case import...utx还支持更多的设置、功能,而且也在不断更新迭代,值得一直做自动化测试的、有unittest使用需求的同学尝试应用。...实际我们在进行接口自动化搭建、完善过程是需要支持更多维度的内容,比如接口参数的校验、返回的校验、用自动转化等等。测试的路漫漫其修远兮,自动化测试的路更是修远远远远远兮。

    68030

    Python实战之unittest使用详

    3.2 unitest编写测试用 使用unittest对myfunc进行单元测试,首先需要导入unitest框架和待模块myfunc,定义的测试用方法类 需要继承unittest.TestCase...从上面的设计的测试用执行结果及对自动化测试的要求,需要考虑以下4个问题,及给出unitest框架 的解决方法。...3.3 框架如何解决自动化需求的4个问题 3.3.1 问题1: 如何控制用执行顺序 在unittest,用是以test开头的方法定义的,默认执行顺序是根据用名称升序进行,如上面的用, 实际执行顺序为...3.3.3 问题3:如何跳过用自动化测试,经常会遇到挑选用的情况,在unittest的解决方法是使用skip装饰器, 其中skip装饰器主要有3种:unittest.skip(reason)...3.3.4  问题4:如何生成html格式的测试报告 Unittest默认生成的报告格式为txt,如果想生成html格式的报告,可以使用HtmlTestRunner模块, 安装后导入该模块,使用HTMLTestRunner

    1.6K10

    聊聊 Python 代码覆盖率工具 - Coverage

    代码覆盖率 单元测试代码覆盖率作为一种度量方式,可以计算单元测试用对于被代码的覆盖程度,即:被执行的代码数量和代码总数量的比值 统计代码覆盖率,经常在单元测试后再进行,可以为测试结果提供评判依据 Python...根据上面的被方法,这里使用 Python 自带的unittest 依赖库来编写 2 个简单的测试用 并且,特意只覆盖到了上面方法的 2 个分支,即:优秀和良好 # 单元测试 # test_get_level.py...(verbosity=2) 右键运行单元测试,会发现两个测试用都是通过的 接下来,分别使用 Coverage 命令和 API 在本地生成代码覆盖率统计报告 1、Coverage命令 在项目根目录下,...运行 coverage run 命令,生成 .coverage 文件,搜集被测试源代码覆盖率的信息 # 1、搜集被代码覆盖率信息,保存到 .coverage 文件 coverage run test_get_level.py.../Flask Web项目统计单元测试用的代码覆盖率,以提升产品的质量

    1.5K30

    创建你的第一个webdriver python代码

    ("utf-8") class BaiduTest(unittest.TestCase): """百度首页搜索测试用""" def setUp(self): self.driver...模块,作为用基类 import unittest # 导入html报告生成模块,用于html格式报告生成 import HTMLTestRunner # 导入sys模块 import sys...# 从unittest.TestCase继承 class BaiduTest(unittest.TestCase): """百度首页搜索测试用""" # 用级初始化函数...百度搜索") # 用级清理函数,自动执行 def tearDown(self): # 退出webdriver,同时关闭当前webdrier session...开源优 单击了 百度一下 按钮 显示出搜索结果 闭关了浏览器 在当前目录下 生成了testReport.html的测试报告文件 总结 最后总结下,要注意的几个关键点: 确保要启动的浏览器的驱动已经下载好

    81770

    UnitTest测试框架全栈详解

    自动化测试用 不管基于什么的测试框架,自动化测试用的编写都需要遵守如下的规则,具体总结如下: UnitTest组件 unittest是属于Python语言的单元测试框架,它的核心组件具体可以总结为如下...,这样在测试报告就会显示具体的测试点的检查点 3、在自动化测试,每个测试用都必须得有断言,无断言的自动化测试用是无效的 4、最好一个测试用方法对应一个业务测试点,不要多个业务检查点写一个测试用...=2).run(Baidu.suite()) 分离测试套件 在一个完整的自动化测试用,比如在UI的自动化测试用,我们的测试用是按照业务模块来进行划分的,那么以为着我们需要编写很多的模块,但是就存在重复的代码...(verbosity=2) 在UI自动化测试,parameterized也是特别的有用,针对一个登录案例的测试,针对登录就会有很多的测试案 的,主要是用户名和密码的input表单的验证以及错误信息的验证...,下面就结合具体的案例来看它在UI自动的应用,案例源码为: #!

    69820

    Python unittest 框架,强大的测试利器

    这意味着如果想要控制测试用的执行顺序,不能仅仅依靠书写的先后顺序,需要通过合理命名方法名来实现。在测试用,断言方法是判断被对象行为是否符合预期的关键。...调用 main 方法运行测试用在测试模块的底部,可以使用unittest.main()方法来运行所有的测试用,这个方法会自动发现并执行所有以test_开头的测试方法。...例如:if __name__ == '__main__': unittest.main()3.2 用执行方式1. 自动发现和执行测试用unittest 提供了一种自动发现测试用的机制。...测试用结构每个测试方法都以test_开头,这是 unittest 框架的要求,以便框架能够自动识别并执行这些方法。在每个测试方法,首先调用被测试的方法,然后使用断言来验证结果是否符合预期。2....测试套件可以将多个测试用或测试类集中起来执行,方便管理大量的测试用。同时,测试运行器可以生成详细的测试报告,帮助开发者快速了解测试结果,定位问题。

    12110

    Python的单元测试框架

    如上图所示,由敏捷大师Martin Fowler测试分层概念,以区别于传统的自动化测试。...这里的自动化测试分为从下往上的三层架构: 单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,java的Junit、TestNG,python的unittest...UnitTest和PyTest就是Python最常用的两个单元测试框架。...在UnitTest单元测试框架,利用UnitTest所提供的TestCase类可以快速构建对于被代码的单元测试用,并可以完成全部或者指定要求用加载,并执行生成测试结果。...在今晚8点的课程,芒果将带大家一起学习Python的单元测试的构建与执行,以及如何使用HtmlTestRunner生成符合要求的测试报告。

    53320

    web自动化测试实战之生成测试报告

    同志们,老铁们,继上篇文章 web自动化测试实战之批量执行测试用 之后我们接着继续往下走,有人说我们运行了所有测试用,控制台输入的结果,如果很多测试用那也不能够清晰快速的知道多少用通过率以及错误情况...web自动化测试实战之批量执行测试用 场景: 运行 AllTest.py 文件后得到的测试结果不够专业,无法直观的分析测试结果,我们能否有一个报告直接展示我测试用运行的测试结果呢。...AllTest.py 执行所有测试用直接输出到报告怎么写 01.第一种我们引用的 HTMLTestReportCN.py 如下代码 # -*-coding=utf-8-*- import unittest...getNowTime 方法用来获取当前时间,每一次生成的测试报告如果文件名称一致,由于加上了最新时间信息,便可以根据文件名称确认哪个是最新的测试报告 run 方法用来执行测试套件的测试用生成测试报告...runner.run(AllTest()) if __name__ == '__main__': run() 查看报告输出样式 以上就是web自动化批量执行用之后如果生成报告文件,最近工作比较繁忙

    1.3K11

    python接口自动化(二十一)--unittest简介(详解)

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动 试用的开发与执行,该测试框架可组织执行测试用,并且提供了丰富的断言方法,判断测试用是否通过,最终生成测试结果。...类来搜索所有包含在该模块以“test”命名开头的测试方法,并自动执行他们。...试用需要访问数据库,可以在setUp建立数据库连接并进行初始化。试用需要登录web,可以先实例化浏览器。 tearDown():tearDown()方法用于测试用执行之后的善后工作。...关闭数据库连接。关闭浏览器。 assert*():一些断言方法:在执行测试用的过程,最终用是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的。...assertIn(a,b,[msg='测试失败时打印的信息']):断言a是否在b,在b则测试用通过。

    1.6K31

    Python接口自动化之动态数据处理

    以下主要介绍:接口自动化过程,动态数据如何生成、动态数据与数据库数据进行对比并替换。 一 应用场景 注册接口参数需要手机,手机如何动态生成生成的手机如何与数据库数据进行对比?...二 动态手机处理思路 ①编写函数,生成随机的手机; ②将生成的手机进行数据库查询; ③手机已存在,就重新生成手机; ④手机不存在,就将此手机替换测试用的手机。...三 动态手机处理 1 注册接口测试用 在data/cases.xlsx,新建register工作簿,填充注册接口用,其中mobile_phone是动态参数,如果写死,在自动化过程,会运行失败,...大致思路如下: ①从excel读取用例数据; ②判断用例数据是否包含#new_phone#; ③包含#new_phone#,则随机生成手机; ④随机生成的手机在数据库存在,则重新生成; ⑤...随机生成的手机在数据库不存在,则用此手机替换#new_phone#,进行注册。

    1.1K20

    腾讯云AI代码助手:AI辅助编写测试用,测试从此不求人

    腾讯云 AI 代码助手利用先进的自然语言处理和机器学习技术,能够自动生成代码片段和测试用。这一工具不仅能帮助开发者节省时间,还能提升代码的规范性和可读性。...对于编程新手来说,腾讯云 AI 代码助手提供的测试用生成功能尤为有用,它可以帮助新手快速了解如何撰写有效的测试用,避免常见的错误,并在学习过程逐步提高测试能力。...首先必须要在测试文件调用被程序的文件。之后在TestExample类通过注释要求AI生成测试函数。换行之后,AI的提示就出现了,这里只需要一直按TAB持续生成。...我们只需要简单地输入代码片段或描述需要测试的功能,腾讯云 AI 代码助手就会自动生成相应的测试用。不仅如此,AI还可以对生成的测试用进行修改和优化,确保测试覆盖了各种可能的场景和边界情况。...手动验证和优化:通过上面的例子可以发现,自动生成的测试用可能并不完美,还应根据实际需求进行调整和优化,确保测试的全面性和准确性。 3.

    46910

    web自动化测试入门篇07 ——— 用编写技巧

    这个可以说是我们整个测试用最最至关重要的部分了,没有了它自动化测试的基准也会变得混沌不清,所以如何写好自动的测试用直接决定了你的自动化测试的落地价值与执行意义。...这里的功能与场景可以理解为在自动化测试执行需要验证的是单个功能点还是一组业务流程,这个和黑盒测试的测试用有点区别,正是因为自动化测试的特性,可以帮助测试在极短的时间内对某个所需测试的业务流进行验证,...那么在自动化测试用,用的重复利用也就变的顺理成章了。当然,虽然理念相同,但实际设计与操作起来还是有些区别的,比如自动化测试用在设计的时候要考虑测试数据的生成与回收。...2.4 确保测试用可维护性   自动化测试用应该易于维护,这句话该如何理解呢?...然后使用for循环来遍历这个列表,并使用subTest()方法来为每组数据生成一个独立的测试用。这样就可以在测试报告中看到每个数据的测试结果,方便排查问题。

    35850

    聊聊 Python 的单元测试框架(一):unittest

    它支持测试自动化,多个测试用共享前置(setUp)和清理(tearDown)代码,聚合多个测试用到测试集中,并将测试和报告框架独立。...() 上述示例,通过继承 unittest.TestCase[4] 来创建一个测试用。...每个用都采用 unittest 内置的断言方法来判断被对象的行为是否符合预期,比如: 在 test_upper 测试,使用 assertEqual[5] 检查是否是预期值 在 test_isupper...三、用发现和执行 unittest 支持用自动(递归)发现: 默认发现当前目录下所有符合 test*.py 测试用 使用 python -m unittest 或 python -m unittest...在安装好第三方库后,你不能直接使用 python -m unittest 加上类似 --html report.html 的方式来生成 HTML 报告,而是需要自行编写少量代码来运行测试用进而得到 HTML

    67120

    python单元测试unittest

    1.1 测试模块的函数: 被模块: [python] view plaincopy #!...':所有测试用的基本类,给一个测试方法的名字,返回一个测试用实例  'TestLoader':测试用加载器,其包括多个加载测试用的方法。...=None)  --根据给定的字符串来获取测试用套件,字符串可以是模块名,测试类名,测试类的测试方法名,或者一个可调用的是实例对象  这个实例对象返回一个测试用或一个测试套件  loadTestsFromNames...而我们通常执行的unittest.main(),其实就是unittest.testprom方法,其执行的功能就是上面分析的三步,在第一步其传入的参数是自身的模块__main__;  在第二步把自身模块的所有测试类的测试方法提取出来...【测试用例文件必须为test开头,:testxxx.py, 当然这个文件本身是一个单元测试的文件】 [python] view plaincopy #!

    68910

    python unittest使用基本过程

    前言 unittest是python的标准的单元测试框架,能够很好的和自动化测试相结合,并有独立的测试报告框架。...在selenium测试,我们可以用来做webdriver的初始化等等 testcase 测试用unittest的最小单元。用以对指定输入的返回结果进行检测。...在unittest中提供 了TestCase基类,用来创建新的测试用类。 test suite 测试套件,一系列测试用或测试套件的集合。在unittest由TestSuite类实现。...test runner 测试执行器,负责用执行并生成测试报告,在unittest中提供了命令行模式和GUI模式来执行。 unittest使用过程 下面一步步的展示如何使用unittest来测试。...) sys.setdefaultencoding("utf-8") # 被函数 def add(a, b): return a + b # 测试用 class demoTest(unittest.TestCase

    1.6K110

    自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码

    2.PO层:元素定位、获得元素对象,页面动作 3.测试用层:业务逻辑,数据驱动! 三者的关系:PO层继承继承层,测试用层调用PO层!...一个好的自动化测试框架是可以让不那么懂技术的人也可以写自动化测试脚本的, 一个好的自动化测试框架可以减少自动化测试脚本管理和维护当中的人力物力和财力。 其实自动化框架的一个最大的意义在于可重用性。...并且生成美观的测试报告。...三、非PO模式和PO模式优缺点对比 笔者来自公众:软之家 更多技术干货,视频资料请加:软件测试技术群:695458161 非PO模式 PO模式 面向过程的线性脚本 POM把页面元素定位和业务操作流程分开...作者:来自公众:软之家 出处:https://blog.csdn.net/pengjiangchun/article/details/106083729 原创不易,欢迎转载,但未经作者同意请保留此段声明

    59030

    Python+request+unittest实现接口测试框架集成实例

    在用工具运行测试用之前不得不手动向数据库插入测试数据。这样我们的接口测试是不是就没有那么“自动化了”。...() unittest单元测试框架可以帮助 组织和运行接口测试用。...---- 4、接口自动化测试框架实现 关于接口自动化测试,unittest 已经帮我们做了大部分工作,接下来只需要 集成数据库操作 ,以及 HTMLTestRunner测试报告生成 扩展即可。...interface/: 用于编写接口自动化测试用。 report/: 生成接口自动化测试报告。 db_config.ini : 数据库配置文件。...HTMLTestRunner.py unittest 单元测试框架扩展,生成 HTML 格式的测试报告。 run_tests.py : 执行所有接口测试用

    1.2K20
    领券